Add presence ping to sliding-sync.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-10-04 08:50:21 +00:00
parent 227b77e58e
commit 4baa25f66f
3 changed files with 22 additions and 15 deletions

View File

@@ -31,7 +31,9 @@ use ruma::{
};
use tokio::time::{Instant, timeout_at};
use tuwunel_core::{
Err, Result, apply, at, debug_error, error, extract_variant, is_equal_to,
Err, Result, apply, at, debug_error, error,
error::inspect_log,
extract_variant, is_equal_to,
matrix::{Event, StateKey, TypeStateKey, pdu::PduCount},
pair_of, ref_at, trace,
utils::{
@@ -112,6 +114,12 @@ pub(crate) async fn sync_events_v5_route(
.sync
.update_snake_sync_request_with_cache(&snake_key, &mut request);
let ping_presence = services
.presence
.maybe_ping_presence(sender_user, &request.set_presence)
.inspect_err(inspect_log)
.ok();
let all_joined_rooms = services
.state_cache
.rooms_joined(sender_user)
@@ -130,8 +138,8 @@ pub(crate) async fn sync_events_v5_route(
.map(ToOwned::to_owned)
.collect::<Vec<OwnedRoomId>>();
let (all_joined_rooms, all_invited_rooms, all_knocked_rooms) =
join3(all_joined_rooms, all_invited_rooms, all_knocked_rooms).await;
let (all_joined_rooms, all_invited_rooms, all_knocked_rooms, _) =
join4(all_joined_rooms, all_invited_rooms, all_knocked_rooms, ping_presence).await;
let all_invited_rooms = all_invited_rooms.iter().map(AsRef::as_ref);
let all_knocked_rooms = all_knocked_rooms.iter().map(AsRef::as_ref);