From e63ecc10aa426e3aba416fd05a3f568d719a79a3 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Sat, 21 Feb 2026 17:25:52 +0100 Subject: handshare and signalproxy/rpccall error handling --- src/message/handshake/mod.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/message/handshake/mod.rs') diff --git a/src/message/handshake/mod.rs b/src/message/handshake/mod.rs index 9bcbe6e..1b02bb4 100644 --- a/src/message/handshake/mod.rs +++ b/src/message/handshake/mod.rs @@ -58,15 +58,18 @@ impl HandshakeDeserialize for HandshakeMessage { fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> { let (size, mut res) = VariantMap::parse(b)?; - let msgtype: String = res.remove("MsgType").unwrap().try_into().unwrap(); + let msgtype: String = res + .remove("MsgType") + .ok_or_else(|| ProtocolError::MissingField("MsgType".to_string()))? + .try_into()?; match msgtype.as_str() { - "ClientInit" => Ok((size, HandshakeMessage::ClientInit(res.into()))), - "ClientInitAck" => Ok((size, HandshakeMessage::ClientInitAck(res.into()))), - "ClientInitReject" => Ok((size, HandshakeMessage::ClientInitReject(res.into()))), - "ClientLogin" => Ok((size, HandshakeMessage::ClientLogin(res.into()))), + "ClientInit" => Ok((size, HandshakeMessage::ClientInit(res.try_into()?))), + "ClientInitAck" => Ok((size, HandshakeMessage::ClientInitAck(res.try_into()?))), + "ClientInitReject" => Ok((size, HandshakeMessage::ClientInitReject(res.try_into()?))), + "ClientLogin" => Ok((size, HandshakeMessage::ClientLogin(res.try_into()?))), "ClientLoginAck" => Ok((size, HandshakeMessage::ClientLoginAck)), - "ClientLoginReject" => Ok((size, HandshakeMessage::ClientLoginReject(res.into()))), - "SessionInit" => Ok((size, HandshakeMessage::SessionInit(res.into()))), + "ClientLoginReject" => Ok((size, HandshakeMessage::ClientLoginReject(res.try_into()?))), + "SessionInit" => Ok((size, HandshakeMessage::SessionInit(res.try_into()?))), _ => unimplemented!(), } } -- cgit v1.2.3