Move message size constant to `Message` type
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
This commit is contained in:
parent
c306392d13
commit
f5e881b5a9
|
|
@ -1,8 +1,7 @@
|
||||||
|
use std::mem::size_of;
|
||||||
|
|
||||||
use crate::service::message::*;
|
use crate::service::message::*;
|
||||||
use crate::service::*;
|
use crate::service::*;
|
||||||
use crate::wire;
|
|
||||||
|
|
||||||
use std::mem::size_of;
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
|
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
|
||||||
pub enum PingState {
|
pub enum PingState {
|
||||||
|
|
@ -118,14 +117,14 @@ impl Session {
|
||||||
|
|
||||||
pub fn ping(&mut self, reactor: &mut Reactor) -> Result<(), SessionError> {
|
pub fn ping(&mut self, reactor: &mut Reactor) -> Result<(), SessionError> {
|
||||||
if let SessionState::Negotiated { ping, .. } = &mut self.state {
|
if let SessionState::Negotiated { ping, .. } = &mut self.state {
|
||||||
let ponglen = self.rng.u16(0..wire::message::MAX_PAYLOAD_SIZE_BYTES);
|
let ponglen = self.rng.u16(0..Message::MAX_SIZE);
|
||||||
let msg =
|
let msg = Message::Ping {
|
||||||
Message::Ping {
|
ponglen,
|
||||||
ponglen,
|
zeroes: message::ZeroBytes::new(
|
||||||
zeroes: message::ZeroBytes::new(self.rng.u16(
|
self.rng
|
||||||
0..(wire::message::MAX_PAYLOAD_SIZE_BYTES - (size_of::<u16>() as u16)),
|
.u16(0..(Message::MAX_SIZE - size_of::<u16>() as u16)),
|
||||||
)),
|
),
|
||||||
};
|
};
|
||||||
reactor.write(self.addr, msg);
|
reactor.write(self.addr, msg);
|
||||||
|
|
||||||
*ping = PingState::AwaitingResponse(ponglen);
|
*ping = PingState::AwaitingResponse(ponglen);
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,6 @@ use crate::prelude::*;
|
||||||
use crate::service::message::*;
|
use crate::service::message::*;
|
||||||
use crate::wire;
|
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.
|
/// Message type.
|
||||||
#[repr(u16)]
|
#[repr(u16)]
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
|
@ -48,6 +44,10 @@ impl TryFrom<u16> for MessageType {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Message {
|
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 {
|
pub fn type_id(&self) -> u16 {
|
||||||
match self {
|
match self {
|
||||||
Self::Initialize { .. } => MessageType::Initialize,
|
Self::Initialize { .. } => MessageType::Initialize,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue