更新地址成功则返回true

This commit is contained in:
lbl8603
2024-06-17 23:43:54 +08:00
parent bf55ec9512
commit 481c00629a
2 changed files with 9 additions and 3 deletions
+5 -1
View File
@@ -99,10 +99,12 @@ impl NatInfo {
nat_type, nat_type,
} }
} }
pub fn update_addr(&mut self, index: usize, ip: Ipv4Addr, port: u16) { pub fn update_addr(&mut self, index: usize, ip: Ipv4Addr, port: u16) -> bool {
let mut updated = false;
if port != 0 { if port != 0 {
if let Some(public_port) = self.public_ports.get_mut(index) { if let Some(public_port) = self.public_ports.get_mut(index) {
if *public_port != port { if *public_port != port {
updated = true;
log::info!("端口变化={}:{} index={}", ip, port, index) log::info!("端口变化={}:{} index={}", ip, port, index)
} }
*public_port = port; *public_port = port;
@@ -116,9 +118,11 @@ impl NatInfo {
{ {
if !self.public_ips.contains(&ip) { if !self.public_ips.contains(&ip) {
self.public_ips.push(ip); self.public_ips.push(ip);
updated = true;
log::info!("ip变化={},{:?}", ip, self.public_ips) log::info!("ip变化={},{:?}", ip, self.public_ips)
} }
} }
updated
} }
pub fn local_ipv4(&self) -> Option<Ipv4Addr> { pub fn local_ipv4(&self) -> Option<Ipv4Addr> {
self.local_ipv4 self.local_ipv4
+4 -2
View File
@@ -185,7 +185,7 @@ impl NatTest {
} }
false false
} }
pub fn update_addr(&self, index: usize, ip: Ipv4Addr, port: u16) { pub fn update_addr(&self, index: usize, ip: Ipv4Addr, port: u16) -> bool {
let mut guard = self.info.lock(); let mut guard = self.info.lock();
guard.update_addr(index, ip, port) guard.update_addr(index, ip, port)
} }
@@ -273,7 +273,9 @@ impl NatTest {
&& !ip.is_loopback() && !ip.is_loopback()
&& !ip.is_private() && !ip.is_private()
{ {
self.update_addr(index, *addr.ip(), addr.port()); if self.update_addr(index, *addr.ip(), addr.port()) {
log::info!("回应地址{:?},来源stun {:?}", addr, source_addr)
}
} }
} }
} }