aboutsummaryrefslogtreecommitdiff
path: root/src/message/handshake/mod.rs
diff options
context:
space:
mode:
authorMax Audron <me@audron.dev>2026-02-21 17:25:52 +0100
committerMax Audron <me@audron.dev>2026-02-21 17:25:52 +0100
commite63ecc10aa426e3aba416fd05a3f568d719a79a3 (patch)
treee1a8dc6e4197e51ddeb3d631410acec9eda3cf6a /src/message/handshake/mod.rs
parentuse ProtocolError for From derive (diff)
handshare and signalproxy/rpccall error handling
Diffstat (limited to 'src/message/handshake/mod.rs')
-rw-r--r--src/message/handshake/mod.rs17
1 files changed, 10 insertions, 7 deletions
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!(),
}
}