From 288625cd3268b6210991f994d70660ce274c6b56 Mon Sep 17 00:00:00 2001 From: open-trade Date: Fri, 18 Sep 2020 17:22:11 +0800 Subject: [PATCH] enable update configure online --- src/rendezvous_server.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index c379096..310b212 100644 --- a/src/rendezvous_server.rs +++ b/src/rendezvous_server.rs @@ -287,6 +287,32 @@ impl RendezvousServer { Some(rendezvous_message::Union::local_addr(la)) => { self.handle_local_addr(&la, addr, Some(socket)).await?; } + Some(rendezvous_message::Union::misc_info(mi)) => match mi.union { + Some(misc_info::Union::configure_update(mut cu)) => { + if addr.ip() == std::net::IpAddr::V4(std::net::Ipv4Addr::new(127, 0, 0, 1)) + { + self.serial = cu.serial; + self.rendezvous_servers = cu + .rendezvous_servers + .drain(..) + .map(|x| { + if !x.contains(":") { + format!("{}:21116", x) + } else { + x + } + }) + .filter(|x| x.parse::().is_ok()) + .collect(); + log::info!( + "configure updated: serial={} rendezvous-servers={:?}", + self.serial, + self.rendezvous_servers + ); + } + } + _ => {} + }, _ => {} } }