Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
Move message size constant to `Message` type
Alexis Sellier committed 3 years ago
commit f5e881b5a953a01d30521b8f91449fb4fd54ab10
parent c306392d13e4c2c4fc4d323966e4bdec8780d3a5
2 files changed +14 -15
modified 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::<u16>() 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::<u16>() as u16)),
+
                ),
+
            };
            reactor.write(self.addr, msg);

            *ping = PingState::AwaitingResponse(ponglen);
modified 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::<MessageType>() as wire::Size);
-

/// Message type.
#[repr(u16)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
@@ -48,6 +44,10 @@ impl TryFrom<u16> for MessageType {
}

impl Message {
+
    /// The maximum supported message size in bytes.
+
    pub const MAX_SIZE: wire::Size =
+
        wire::Size::MAX - (mem::size_of::<MessageType>() as wire::Size);
+

    pub fn type_id(&self) -> u16 {
        match self {
            Self::Initialize { .. } => MessageType::Initialize,