diff options
author | Nyaaori <+@nyaaori.cat> | 2022-10-31 12:08:01 +0100 |
---|---|---|
committer | Nyaaori <+@nyaaori.cat> | 2022-10-31 12:28:30 +0100 |
commit | 23cf39c525790122a97090b041e16b68e94644de (patch) | |
tree | 491bbda7fc943c35e5f48df25d4b065fec58f0db /src | |
parent | 00996dd83441abac357e27b4bd325c8ccef62e75 (diff) | |
download | conduit-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.rs | 12 |
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); |