From 9769c26156311fa24a1a376736172283e199bbf9 Mon Sep 17 00:00:00 2001 From: Eskil Queseth Date: Fri, 21 May 2021 15:35:36 +0200 Subject: fix panic when user leaves channel --- mumd/src/state.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'mumd/src') diff --git a/mumd/src/state.rs b/mumd/src/state.rs index fba6ab0..7a5df90 100644 --- a/mumd/src/state.rs +++ b/mumd/src/state.rs @@ -619,7 +619,13 @@ pub fn handle_command( if let TcpEventData::TextMessage(a) = data { let message = ( a.get_message().to_owned(), - ref_state.read().unwrap().server().unwrap().users().get(&a.get_actor()).unwrap().name().to_string() + ref_state.read() + .unwrap() + .server() + .unwrap() + .users() + .get(&a.get_actor()).map(|e| e.name().to_string()) + .unwrap_or(format!("Unknown user {}", a.get_actor())) ); sender.send(Ok(Some(CommandResponse::PastMessage { message }))).is_ok() } else { @@ -634,7 +640,14 @@ pub fn handle_command( None => return now!(Err(Error::Disconnected)), }; let messages = messages.into_iter() - .map(|(msg, user)| (msg, server.users().get(&user).unwrap().name().to_string())).collect(); + .map(|(msg, user)| (msg, server + .users() + .get(&user) + .map(|e| e + .name() + .to_string()) + .unwrap_or(format!("Unknown user {}", user)))) + .collect(); now!(Ok(Some(CommandResponse::PastMessages { messages }))) } -- cgit v1.2.1