diff --git a/conduwuit-example.toml b/conduwuit-example.toml index 450fefaf..a07b3d66 100644 --- a/conduwuit-example.toml +++ b/conduwuit-example.toml @@ -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. diff --git a/src/main.rs b/src/main.rs index a4f3754a..5ac3ef59 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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); diff --git a/src/service/globals/mod.rs b/src/service/globals/mod.rs index ad8f4a4c..54b410e9 100644 --- a/src/service/globals/mod.rs +++ b/src/service/globals/mod.rs @@ -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 } diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index 9a12f7b4..38034afc 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -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();