From c4e03234a999cb818228ace3ddf1b061d4446f85 Mon Sep 17 00:00:00 2001 From: DJMrTV Date: Sun, 19 Jan 2025 19:04:24 +0100 Subject: [PATCH] fix last two commits and fix core actual problem --- src/prudp/packet.rs | 18 ++++++++++-------- src/prudp/server.rs | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/prudp/packet.rs b/src/prudp/packet.rs index cd1bd60..f7e77c6 100644 --- a/src/prudp/packet.rs +++ b/src/prudp/packet.rs @@ -65,24 +65,26 @@ pub struct VirtualPort(u8); impl VirtualPort{ #[inline] pub const fn get_stream_type(self) -> u8 { - (self.0 & 0x0F) - } - - #[inline] - pub const fn get_port_number(self) -> u8 { (self.0 & 0xF0) >> 4 } #[inline] - pub fn stream_type(self, val: u8) -> Self { - let masked_val = val & 0xF0; + pub const fn get_port_number(self) -> u8 { + (self.0 & 0xF0) + } - Self((self.0 & 0x0F) | masked_val) + #[inline] + pub fn stream_type(self, val: u8) -> Self { + let masked_val = val & 0x0F; + assert_eq!(masked_val, val); + + Self((self.0 & 0xF0) | masked_val) } #[inline] pub fn port_number(self, val: u8) -> Self { let masked_val = val & 0x0F; + assert_eq!(masked_val, val); Self((self.0 & 0x0F) | (masked_val << 4)) } diff --git a/src/prudp/server.rs b/src/prudp/server.rs index c62b200..373d58d 100644 --- a/src/prudp/server.rs +++ b/src/prudp/server.rs @@ -63,7 +63,7 @@ impl NexServer{ }; let Some(endpoint) = endpoints.iter().find(|e|{ - e.get_virual_port().get_port_number() == connection.prudp_addr.virtual_port.get_port_number() + e.get_virual_port().get_port_number() == packet.header.destination_port.get_port_number() }) else { error!("connection to invalid endpoint({}) attempted by {}", connection.prudp_addr.virtual_port.get_port_number(), connection.prudp_addr.regular_socket_addr); continue;