diff --git a/conduwuit-example.toml b/conduwuit-example.toml index 450fefaf4..a07b3d660 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 a4f3754ab..5ac3ef59d 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 ad8f4a4c7..54b410e9b 100644 --- a/src/service/globals/mod.rs +++ b/src/service/globals/mod.rs @@ -395,7 +395,7 @@ pub fn allow_incoming_presence(&self) -> bool { 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 9a12f7b43..38034afc4 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -287,7 +287,7 @@ pub fn select_edus(&self, server_name: &ServerName) -> Result<(Vec>, u64 .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();