summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNyaaori <+@nyaaori.cat>2022-10-31 12:08:01 +0100
committerNyaaori <+@nyaaori.cat>2022-10-31 12:28:30 +0100
commit23cf39c525790122a97090b041e16b68e94644de (patch)
tree491bbda7fc943c35e5f48df25d4b065fec58f0db /src
parent00996dd83441abac357e27b4bd325c8ccef62e75 (diff)
downloadconduit-23cf39c525790122a97090b041e16b68e94644de.zip
Cleanly handle invalid response from trusted server instead of panicking
Diffstat (limited to 'src')
-rw-r--r--src/service/rooms/event_handler/mod.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/service/rooms/event_handler/mod.rs b/src/service/rooms/event_handler/mod.rs
index 477a971..3b41e86 100644
--- a/src/service/rooms/event_handler/mod.rs
+++ b/src/service/rooms/event_handler/mod.rs
@@ -1464,7 +1464,17 @@ impl Service {
.write()
.map_err(|_| Error::bad_database("RwLock is poisoned."))?;
for k in keys.server_keys {
- let k = k.deserialize().unwrap();
+ let k = match k.deserialize() {
+ Ok(key) => key,
+ Err(e) => {
+ warn!(
+ "Received error {} while fetching keys from trusted server {}",
+ e, server
+ );
+ warn!("{}", k.into_json());
+ continue;
+ }
+ };
// TODO: Check signature from trusted server?
servers.remove(&k.server_name);