From f5e881b5a953a01d30521b8f91449fb4fd54ab10 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Tue, 18 Oct 2022 13:06:45 +0200 Subject: [PATCH] Move message size constant to `Message` type Signed-off-by: Alexis Sellier --- radicle-node/src/service/peer.rs | 21 ++++++++++----------- radicle-node/src/wire/message.rs | 8 ++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/radicle-node/src/service/peer.rs b/radicle-node/src/service/peer.rs index 3bc83f8e..1b2c152e 100644 --- a/radicle-node/src/service/peer.rs +++ b/radicle-node/src/service/peer.rs @@ -1,8 +1,7 @@ +use std::mem::size_of; + use crate::service::message::*; use crate::service::*; -use crate::wire; - -use std::mem::size_of; #[derive(Debug, Copy, Clone, Default, PartialEq, Eq)] pub enum PingState { @@ -118,14 +117,14 @@ impl Session { pub fn ping(&mut self, reactor: &mut Reactor) -> Result<(), SessionError> { if let SessionState::Negotiated { ping, .. } = &mut self.state { - let ponglen = self.rng.u16(0..wire::message::MAX_PAYLOAD_SIZE_BYTES); - let msg = - Message::Ping { - ponglen, - zeroes: message::ZeroBytes::new(self.rng.u16( - 0..(wire::message::MAX_PAYLOAD_SIZE_BYTES - (size_of::() as u16)), - )), - }; + let ponglen = self.rng.u16(0..Message::MAX_SIZE); + let msg = Message::Ping { + ponglen, + zeroes: message::ZeroBytes::new( + self.rng + .u16(0..(Message::MAX_SIZE - size_of::() as u16)), + ), + }; reactor.write(self.addr, msg); *ping = PingState::AwaitingResponse(ponglen); diff --git a/radicle-node/src/wire/message.rs b/radicle-node/src/wire/message.rs index 9c5685ba..9984a27b 100644 --- a/radicle-node/src/wire/message.rs +++ b/radicle-node/src/wire/message.rs @@ -7,10 +7,6 @@ use crate::prelude::*; use crate::service::message::*; use crate::wire; -/// The maximum supported message size in bytes. -pub const MAX_PAYLOAD_SIZE_BYTES: wire::Size = - wire::Size::MAX - (mem::size_of::() as wire::Size); - /// Message type. #[repr(u16)] #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -48,6 +44,10 @@ impl TryFrom for MessageType { } impl Message { + /// The maximum supported message size in bytes. + pub const MAX_SIZE: wire::Size = + wire::Size::MAX - (mem::size_of::() as wire::Size); + pub fn type_id(&self) -> u16 { match self { Self::Initialize { .. } => MessageType::Initialize,