Просмотр исходного кода

enable update configure online

open-trade лет назад: 5
Родитель
Сommit
288625cd32
1 измененных файлов с 26 добавлено и 0 удалено
  1. 26 0
      src/rendezvous_server.rs

+ 26 - 0
src/rendezvous_server.rs

@@ -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
         }