From 1cda7046281b5127abce6188ae64a7f8522feb12 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 24 Jan 2022 03:15:01 +0800 Subject: [PATCH] more test_nat_type --- src/common.rs | 9 +++++---- src/ipc.rs | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/common.rs b/src/common.rs index ce77b92e6..16da93b7c 100644 --- a/src/common.rs +++ b/src/common.rs @@ -230,6 +230,10 @@ pub fn test_nat_type() { async fn test_nat_type_() -> ResultType { log::info!("Testing nat ..."); let is_direct = crate::ipc::get_socks_async(1_000).await.is_none(); // sync socks BTW + if !is_direct { + Config::set_nat_type(NatType::SYMMETRIC as _); + return Ok(true); + } let start = std::time::Instant::now(); let rendezvous_server = get_rendezvous_server(1_000).await; let server1 = rendezvous_server; @@ -264,10 +268,7 @@ async fn test_nat_type_() -> ResultType { RENDEZVOUS_TIMEOUT, ) .await?; - if is_direct { - // to-do: should set NatType::UNKNOWN for proxy - addr = socket.local_addr(); - } + addr = socket.local_addr(); socket.send(&msg_out).await?; if let Some(Ok(bytes)) = socket.next_timeout(3000).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { diff --git a/src/ipc.rs b/src/ipc.rs index b9c74655a..d442362f8 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -212,6 +212,7 @@ async fn handle(data: Data, stream: &mut Connection) { } else { Config::set_socks(Some(data)); } + crate::common::test_nat_type(); crate::rendezvous_mediator::RendezvousMediator::restart(); log::info!("socks updated"); }