changed network from DashMap to MyDashMap

This commit is contained in:
asxalex 2024-02-24 09:35:07 +08:00
parent 939a0514db
commit 1339d30cc4
2 changed files with 21 additions and 1 deletions

View File

@ -1,4 +1,4 @@
use crate::peer; use crate::peer::{self, V6Info};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -13,6 +13,8 @@ pub struct RegisterSuper<'a> {
// 自身的sock信息 // 自身的sock信息
pub sock: Option<peer::SdlanSock>, pub sock: Option<peer::SdlanSock>,
// v6 info
pub v6_info: Option<V6Info>,
// 自身的ip信息 // 自身的ip信息
pub dev_addr: peer::IpSubnet, pub dev_addr: peer::IpSubnet,
@ -35,6 +37,7 @@ mod test {
use crate::utils::gen_uuid; use crate::utils::gen_uuid;
use self::peer::SdlanSock; use self::peer::SdlanSock;
use self::peer::V6Info;
use crate::config::AF_INET; use crate::config::AF_INET;
use crate::packet::Common; use crate::packet::Common;
use crate::utils::Result; use crate::utils::Result;
@ -65,6 +68,7 @@ mod test {
pass: "encrypt!", pass: "encrypt!",
cookie: 0, cookie: 0,
sock: None, sock: None,
v6_info: None,
dev_addr: peer::IpSubnet::new(192, 24), dev_addr: peer::IpSubnet::new(192, 24),
pub_key: "public key", pub_key: "public key",
token: "user's token", token: "user's token",
@ -94,6 +98,10 @@ mod test {
v4: [0; 4], v4: [0; 4],
v6: [1; 16], v6: [1; 16],
}), }),
v6_info: Some(V6Info {
port: 3306,
v6: [0; 16],
}),
dev_addr: peer::IpSubnet::new(192, 24), dev_addr: peer::IpSubnet::new(192, 24),
pub_key: "public key", pub_key: "public key",
token: "user's token", token: "user's token",

View File

@ -15,6 +15,7 @@ pub struct Peer {
pub dev_addr: IpSubnet, pub dev_addr: IpSubnet,
// 对端对外开放的ip和端口信息 // 对端对外开放的ip和端口信息
pub sock: RwLock<SdlanSock>, pub sock: RwLock<SdlanSock>,
// peer's local v6 info
pub pub_key: RwLock<Vec<u8>>, pub pub_key: RwLock<Vec<u8>>,
pub timeout: isize, pub timeout: isize,
@ -127,6 +128,17 @@ pub struct SdlanSock {
pub v6: [u8; 16], 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)] #[derive(Debug, Serialize, Deserialize, PartialEq, sqlx::FromRow)]
pub struct V6Info { pub struct V6Info {
pub port: u16, pub port: u16,