assume well-known is None if text length exceeds 10000 chars

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-01-24 21:07:53 -05:00 committed by June
parent ec7aeb1096
commit 08a183e8c7

View file

@ -595,14 +595,25 @@ async fn request_well_known(destination: &str) -> Option<String> {
.await;
debug!("Got well known response");
debug!("Well known response: {:?}", response);
if let Err(e) = &response {
debug!("Well known error: {e:?}");
return None;
}
let text = response.ok()?.text().await;
debug!("Got well known response text");
debug!("Well known response text: {:?}", text);
if text.as_ref().ok()?.len() > 10000 {
info!("Well known response for destination '{destination}' exceeded past 10000 characters, assuming no well-known.");
return None;
}
let body: serde_json::Value = serde_json::from_str(&text.ok()?).ok()?;
debug!("serde_json body of well known text: {}", body);
Some(body.get("m.server")?.as_str()?.to_owned())
}