From 1339d30cc41d253a92ac1e9ba8c927957fdd2bfa Mon Sep 17 00:00:00 2001 From: asxalex Date: Sat, 24 Feb 2024 09:35:07 +0800 Subject: [PATCH] changed network from DashMap to MyDashMap --- src/packet/register_super.rs | 10 +++++++++- src/peer.rs | 12 ++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/packet/register_super.rs b/src/packet/register_super.rs index 52d468a..97fef3a 100644 --- a/src/packet/register_super.rs +++ b/src/packet/register_super.rs @@ -1,4 +1,4 @@ -use crate::peer; +use crate::peer::{self, V6Info}; use serde::{Deserialize, Serialize}; @@ -13,6 +13,8 @@ pub struct RegisterSuper<'a> { // 自身的sock信息 pub sock: Option, + // v6 info + pub v6_info: Option, // 自身的ip信息 pub dev_addr: peer::IpSubnet, @@ -35,6 +37,7 @@ mod test { use crate::utils::gen_uuid; use self::peer::SdlanSock; + use self::peer::V6Info; use crate::config::AF_INET; use crate::packet::Common; use crate::utils::Result; @@ -65,6 +68,7 @@ mod test { pass: "encrypt!", cookie: 0, sock: None, + v6_info: None, dev_addr: peer::IpSubnet::new(192, 24), pub_key: "public key", token: "user's token", @@ -94,6 +98,10 @@ mod test { v4: [0; 4], v6: [1; 16], }), + v6_info: Some(V6Info { + port: 3306, + v6: [0; 16], + }), dev_addr: peer::IpSubnet::new(192, 24), pub_key: "public key", token: "user's token", diff --git a/src/peer.rs b/src/peer.rs index e55155e..5689a2a 100644 --- a/src/peer.rs +++ b/src/peer.rs @@ -15,6 +15,7 @@ pub struct Peer { pub dev_addr: IpSubnet, // 对端对外开放的ip和端口信息 pub sock: RwLock, + // peer's local v6 info pub pub_key: RwLock>, pub timeout: isize, @@ -127,6 +128,17 @@ pub struct SdlanSock { pub v6: [u8; 16], } +impl SdlanSock { + pub fn deepcopy(&self) -> Self { + Self { + family: self.family, + port: self.port, + v4: self.v4, + v6: self.v6, + } + } +} + #[derive(Debug, Serialize, Deserialize, PartialEq, sqlx::FromRow)] pub struct V6Info { pub port: u16,