diff --git a/src/service/resolver/actual.rs b/src/service/resolver/actual.rs index 52cd5d7d..d23ef95a 100644 --- a/src/service/resolver/actual.rs +++ b/src/service/resolver/actual.rs @@ -306,25 +306,28 @@ impl super::Service { #[tracing::instrument(name = "srv", level = "debug", skip(self))] async fn query_srv_record(&self, hostname: &'_ str) -> Result> { - self.services.server.check_running()?; + let hostnames = + [format!("_matrix-fed._tcp.{hostname}."), format!("_matrix._tcp.{hostname}.")]; - debug!("querying SRV for {hostname:?}"); + for hostname in hostnames { + self.services.server.check_running()?; - let hostname_suffix = format!("_matrix-fed._tcp.{hostname}."); - let hostname = hostname_suffix.trim_end_matches('.'); - match self.resolver.resolver.srv_lookup(hostname).await { - | Err(e) => Self::handle_resolve_error(&e, hostname)?, - | Ok(result) => { - return Ok(result.iter().next().map(|result| { - FedDest::Named( - result.target().to_string().trim_end_matches('.').to_owned(), - format!(":{}", result.port()) - .as_str() - .try_into() - .unwrap_or_else(|_| FedDest::default_port()), - ) - })); - }, + debug!("querying SRV for {hostname:?}"); + let hostname = hostname.trim_end_matches('.'); + match self.resolver.resolver.srv_lookup(hostname).await { + | Err(e) => Self::handle_resolve_error(&e, hostname)?, + | Ok(result) => { + return Ok(result.iter().next().map(|result| { + FedDest::Named( + result.target().to_string().trim_end_matches('.').to_owned(), + format!(":{}", result.port()) + .as_str() + .try_into() + .unwrap_or_else(|_| FedDest::default_port()), + ) + })); + }, + } } Ok(None) diff --git a/src/service/rooms/event_handler/handle_outlier_pdu.rs b/src/service/rooms/event_handler/handle_outlier_pdu.rs index fad9ac74..3b8653e7 100644 --- a/src/service/rooms/event_handler/handle_outlier_pdu.rs +++ b/src/service/rooms/event_handler/handle_outlier_pdu.rs @@ -123,7 +123,7 @@ where // The original create event must be in the auth events if !auth_events.contains_key(&(StateEventType::RoomCreate, String::new().into())) { - return Err!(Request(InvalidParam("Incoming event refers to wrong create event."))); + return Err!(Request(InvalidParam("Incoming event refers to wrong create event. event_id={event_id}"))); } let state_fetch = |ty: &StateEventType, sk: &str| {