From 8d4949232af017b124d8c67741af6b198655d1da Mon Sep 17 00:00:00 2001 From: open-trade Date: Sat, 26 Sep 2020 10:57:01 +0800 Subject: [PATCH] is_local --- libs/hbb_common | 2 +- src/rendezvous_server.rs | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libs/hbb_common b/libs/hbb_common index 072ae27..ef0bf8e 160000 --- a/libs/hbb_common +++ b/libs/hbb_common @@ -1 +1 @@ -Subproject commit 072ae27c89f371f028304b597b08355b91e50dc4 +Subproject commit ef0bf8e43ad9017d5b7851ad0f261b6503554e65 diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index 8d5c6d3..d45489a 100644 --- a/src/rendezvous_server.rs +++ b/src/rendezvous_server.rs @@ -424,13 +424,16 @@ impl RendezvousServer { if relay_server.is_empty() { relay_server = self.relay_server.clone(); } - msg_out.set_punch_hole_response(PunchHoleResponse { + let mut p = PunchHoleResponse { socket_addr: AddrMangle::encode(addr), pk, relay_server, - nat_type: phs.nat_type, ..Default::default() - }); + }; + if let Ok(t) = phs.nat_type.enum_value() { + p.set_nat_type(t); + } + msg_out.set_punch_hole_response(p); if let Some(socket) = socket { socket.send(&msg_out, addr_a).await?; } else { @@ -459,11 +462,13 @@ impl RendezvousServer { if relay_server.is_empty() { relay_server = self.relay_server.clone(); } - msg_out.set_punch_hole_response(PunchHoleResponse { + let mut p = PunchHoleResponse { socket_addr: la.local_addr.clone(), relay_server, ..Default::default() - }); + }; + p.set_is_local(true); + msg_out.set_punch_hole_response(p); if let Some(socket) = socket { socket.send(&msg_out, addr_a).await?; } else {