open-trade 5 years ago
parent
commit
a5b4d8027f
3 changed files with 15 additions and 21 deletions
  1. 1 1
      libs/hbb_common
  2. 4 12
      src/main.rs
  3. 10 8
      src/rendezvous_server.rs

+ 1 - 1
libs/hbb_common

@@ -1 +1 @@
1
-Subproject commit 58a0ca52b5340c29595aa1adcb9f7ee45e6ef4d3
1
+Subproject commit afce320583693795f971e081298528e32d2719bd

+ 4 - 12
src/main.rs

@@ -44,23 +44,15 @@ async fn main() -> ResultType<()> {
44 44
     };
45 45
     let port = get_arg("port", DEFAULT_PORT);
46 46
     let mut relay_server = get_arg("relay-server", "");
47
-    if !relay_server.contains(":") {
48
-        relay_server = format!("{}:21117", relay_server);
49
-    }
50
-    if !relay_server.parse::<std::net::SocketAddr>().is_ok() {
47
+    if let Err(err) = test_if_valid_server(&relay_server) {
51 48
         relay_server = "".to_owned();
49
+        log::error!("Invalid relay-server: {}", err);
52 50
     }
53 51
     let serial: i32 = get_arg("serial", "").parse().unwrap_or(0);
54 52
     let rendezvous_servers: Vec<String> = get_arg("rendezvous-servers", "")
55 53
         .split(",")
56
-        .map(|x| {
57
-            if !x.contains(":") {
58
-                format!("{}:21116", x)
59
-            } else {
60
-                x.to_owned()
61
-            }
62
-        })
63
-        .filter(|x| x.parse::<std::net::SocketAddr>().is_ok())
54
+        .filter(|x| test_if_valid_server(x).is_ok())
55
+        .map(|x| x.to_owned())
64 56
         .collect();
65 57
     let addr = format!("0.0.0.0:{}", port);
66 58
     log::info!("Listening on {}", addr);

+ 10 - 8
src/rendezvous_server.rs

@@ -2,6 +2,7 @@ use hbb_common::{
2 2
     allow_err,
3 3
     bytes::{Bytes, BytesMut},
4 4
     bytes_codec::BytesCodec,
5
+    config::Config,
5 6
     futures_util::{
6 7
         sink::SinkExt,
7 8
         stream::{SplitSink, StreamExt},
@@ -296,14 +297,7 @@ impl RendezvousServer {
296 297
                             self.rendezvous_servers = cu
297 298
                                 .rendezvous_servers
298 299
                                 .drain(..)
299
-                                .map(|x| {
300
-                                    if !x.contains(":") {
301
-                                        format!("{}:21116", x)
302
-                                    } else {
303
-                                        x
304
-                                    }
305
-                                })
306
-                                .filter(|x| x.parse::<std::net::SocketAddr>().is_ok())
300
+                                .filter(|x| test_if_valid_server(x).is_ok())
307 301
                                 .collect();
308 302
                             log::info!(
309 303
                                 "configure updated: serial={} rendezvous-servers={:?}",
@@ -564,3 +558,11 @@ impl RendezvousServer {
564 558
         Ok(())
565 559
     }
566 560
 }
561
+
562
+pub fn test_if_valid_server(host: &str) -> ResultType<SocketAddr> {
563
+    if host.contains(":") {
564
+        Config::to_socket_addr(host)
565
+    } else {
566
+        Config::to_socket_addr(&format!("{}:{}", host, 0))
567
+    }
568
+}