From a5b4d8027f9347e4122bf525eb945bbccc9ce62d Mon Sep 17 00:00:00 2001 From: open-trade Date: Sun, 20 Sep 2020 20:02:42 +0800 Subject: [PATCH] fix --- libs/hbb_common | 2 +- src/main.rs | 16 ++++------------ src/rendezvous_server.rs | 18 ++++++++++-------- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/libs/hbb_common b/libs/hbb_common index 58a0ca5..afce320 160000 --- a/libs/hbb_common +++ b/libs/hbb_common @@ -1 +1 @@ -Subproject commit 58a0ca52b5340c29595aa1adcb9f7ee45e6ef4d3 +Subproject commit afce320583693795f971e081298528e32d2719bd diff --git a/src/main.rs b/src/main.rs index 7770462..00f04a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,23 +44,15 @@ async fn main() -> ResultType<()> { }; let port = get_arg("port", DEFAULT_PORT); let mut relay_server = get_arg("relay-server", ""); - if !relay_server.contains(":") { - relay_server = format!("{}:21117", relay_server); - } - if !relay_server.parse::().is_ok() { + if let Err(err) = test_if_valid_server(&relay_server) { relay_server = "".to_owned(); + log::error!("Invalid relay-server: {}", err); } let serial: i32 = get_arg("serial", "").parse().unwrap_or(0); let rendezvous_servers: Vec = get_arg("rendezvous-servers", "") .split(",") - .map(|x| { - if !x.contains(":") { - format!("{}:21116", x) - } else { - x.to_owned() - } - }) - .filter(|x| x.parse::().is_ok()) + .filter(|x| test_if_valid_server(x).is_ok()) + .map(|x| x.to_owned()) .collect(); let addr = format!("0.0.0.0:{}", port); log::info!("Listening on {}", addr); diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index 5c3b70e..b1c8886 100644 --- a/src/rendezvous_server.rs +++ b/src/rendezvous_server.rs @@ -2,6 +2,7 @@ use hbb_common::{ allow_err, bytes::{Bytes, BytesMut}, bytes_codec::BytesCodec, + config::Config, futures_util::{ sink::SinkExt, stream::{SplitSink, StreamExt}, @@ -296,14 +297,7 @@ impl RendezvousServer { self.rendezvous_servers = cu .rendezvous_servers .drain(..) - .map(|x| { - if !x.contains(":") { - format!("{}:21116", x) - } else { - x - } - }) - .filter(|x| x.parse::().is_ok()) + .filter(|x| test_if_valid_server(x).is_ok()) .collect(); log::info!( "configure updated: serial={} rendezvous-servers={:?}", @@ -564,3 +558,11 @@ impl RendezvousServer { Ok(()) } } + +pub fn test_if_valid_server(host: &str) -> ResultType { + if host.contains(":") { + Config::to_socket_addr(host) + } else { + Config::to_socket_addr(&format!("{}:{}", host, 0)) + } +}