From 619fba5838cd85a0cf9a264498cece547b6c3180 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Mon, 26 Apr 2021 11:46:20 +0800 Subject: [PATCH] recreate udp socket --- src/rendezvous_mediator.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rendezvous_mediator.rs b/src/rendezvous_mediator.rs index bcb4cc4ac..0e5c9cfa1 100644 --- a/src/rendezvous_mediator.rs +++ b/src/rendezvous_mediator.rs @@ -211,7 +211,11 @@ impl RendezvousMediator { Config::update_latency(&host, -1); old_latency = 0; if now.duration_since(last_dns_check).map(|d| d.as_millis() as i64).unwrap_or(0) > DNS_INTERVAL { - allow_err!(rz.dns_check()); + if let Ok(_) = rz.dns_check() { + // in some case of network reconnect (dial IP network), + // old UDP socket not work any more after network recover + socket = FramedSocket::new(Config::get_any_listen_addr()).await?; + } last_dns_check = now; } } else if fails > MAX_FAILS1 {