|
|
@@ -287,6 +287,32 @@ impl RendezvousServer {
|
|
287
|
287
|
Some(rendezvous_message::Union::local_addr(la)) => {
|
|
288
|
288
|
self.handle_local_addr(&la, addr, Some(socket)).await?;
|
|
289
|
289
|
}
|
|
|
290
|
+ Some(rendezvous_message::Union::misc_info(mi)) => match mi.union {
|
|
|
291
|
+ Some(misc_info::Union::configure_update(mut cu)) => {
|
|
|
292
|
+ if addr.ip() == std::net::IpAddr::V4(std::net::Ipv4Addr::new(127, 0, 0, 1))
|
|
|
293
|
+ {
|
|
|
294
|
+ self.serial = cu.serial;
|
|
|
295
|
+ self.rendezvous_servers = cu
|
|
|
296
|
+ .rendezvous_servers
|
|
|
297
|
+ .drain(..)
|
|
|
298
|
+ .map(|x| {
|
|
|
299
|
+ if !x.contains(":") {
|
|
|
300
|
+ format!("{}:21116", x)
|
|
|
301
|
+ } else {
|
|
|
302
|
+ x
|
|
|
303
|
+ }
|
|
|
304
|
+ })
|
|
|
305
|
+ .filter(|x| x.parse::<std::net::SocketAddr>().is_ok())
|
|
|
306
|
+ .collect();
|
|
|
307
|
+ log::info!(
|
|
|
308
|
+ "configure updated: serial={} rendezvous-servers={:?}",
|
|
|
309
|
+ self.serial,
|
|
|
310
|
+ self.rendezvous_servers
|
|
|
311
|
+ );
|
|
|
312
|
+ }
|
|
|
313
|
+ }
|
|
|
314
|
+ _ => {}
|
|
|
315
|
+ },
|
|
290
|
316
|
_ => {}
|
|
291
|
317
|
}
|
|
292
|
318
|
}
|