Immediately trigger EDU sending after client read receipt

Previously, read receipts would only be forwarded via federation
incidentally when some PDU was later sent to the destination server.
Trigger a send without any event to collect EDUs and get read receipts
out directly.
This commit is contained in:
Lambda 2025-02-09 17:57:23 +00:00 committed by Charles Hall
parent 81c5f09919
commit 6bcc4e310e
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
3 changed files with 39 additions and 14 deletions

View file

@ -95,6 +95,9 @@ pub(crate) async fn set_read_marker_route(
room_id: body.room_id.clone(),
},
)?;
for server in services().rooms.state_cache.room_servers(&body.room_id) {
services().sending.trigger_edu_send(&server?)?;
}
}
Ok(Ra(set_read_marker::v3::Response {}))
@ -159,6 +162,11 @@ pub(crate) async fn create_receipt_route(
room_id: body.room_id.clone(),
},
)?;
for server in
services().rooms.state_cache.room_servers(&body.room_id)
{
services().sending.trigger_edu_send(&server?)?;
}
}
create_receipt::v3::ReceiptType::ReadPrivate => {
let count = services()