add warning about outgoing presence PDU/EDU relationship

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-01-21 13:28:51 -05:00 committed by June
parent 1460a82f54
commit 4e8823dedb
4 changed files with 10 additions and 2 deletions

View file

@ -196,6 +196,10 @@ enable_lightning_bolt = false
# Config option to control outgoing presence updates/requests. Defaults to false.
# This option sends presence updates to other servers, but does not receive any unless `allow_incoming_presence` is true.
# Note that presence on conduwuit is very fast unlike Synapse's.
#
# Warning: Outgoing federated presence is not spec compliant due to relying on PDUs and EDUs combined.
# Outgoing presence will not be very reliable due to this and any issues with federated outgoing presence are very likely attributed to this issue.
# Incoming presence and local presence are unaffected.
#allow_outgoing_presence = false
# Config option to control how many seconds before presence updates that you are idle. Defaults to 5 minutes.

View file

@ -164,6 +164,10 @@ async fn main() {
If this is not the desired behaviour, please disable `allow_registration` and set a registration token.");
}
if config.allow_outgoing_presence {
warn!("! Outgoing federated presence is not spec compliant due to relying on PDUs and EDUs combined.\nOutgoing presence will not be very reliable due to this and any issues with federated outgoing presence are very likely attributed to this issue.\nIncoming presence and local presence are unaffected.");
}
info!("Starting server");
if let Err(e) = run_server().await {
error!("Critical error running server: {}", e);

View file

@ -395,7 +395,7 @@ impl Service<'_> {
self.config.allow_incoming_presence
}
pub fn allow_outcoming_presence(&self) -> bool {
pub fn allow_outgoing_presence(&self) -> bool {
self.config.allow_outgoing_presence
}

View file

@ -287,7 +287,7 @@ impl Service {
.filter(|user_id| user_id.server_name() == services().globals.server_name()),
);
if services().globals.allow_outcoming_presence() {
if services().globals.allow_outgoing_presence() {
// Look for presence updates in this room
let mut presence_updates = Vec::new();