diff --git a/mod.rs b/mod.rs index 55ffc46..8e9e11a 100644 --- a/mod.rs +++ b/mod.rs @@ -12,7 +12,7 @@ fn is_running() -> bool { !*STOP.lock().unwrap() } -pub fn start() { +pub fn start(license: &str, host: &str) { if is_running() { return; } @@ -20,7 +20,8 @@ pub fn start() { let port = rendezvous_server::DEFAULT_PORT; let addr = format!("0.0.0.0:{}", port); let addr2 = format!("0.0.0.0:{}", port.parse::().unwrap_or(0) - 1); - let relay_servers: Vec = Default::default(); + let relay_servers: Vec = vec![format!("{}:{}", host, relay_server::DEFAULT_PORT)]; + let tmp_license = license.to_owned(); std::thread::spawn(move || { allow_err!(rendezvous_server::RendezvousServer::start( &addr, @@ -29,14 +30,15 @@ pub fn start() { 0, Default::default(), Default::default(), - "", + &tmp_license, STOP.clone(), )); }); - std::thread::spawn(|| { + let tmp_license = license.to_owned(); + std::thread::spawn(move || { allow_err!(relay_server::start( relay_server::DEFAULT_PORT, - "", + &tmp_license, STOP.clone() )); }); diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index b766d17..3f1312a 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, futures_util::{ sink::SinkExt, stream::{SplitSink, StreamExt}, @@ -70,9 +71,20 @@ pub const DEFAULT_PORT: &'static str = "21116"; impl PeerMap { fn new() -> ResultType { + let mut db: String = "hbbs.db".to_owned(); + #[cfg(windows)] + { + if let Some(path) = config::Config::icon_path().parent() { + db = format!("{}\\{}", path.to_str().unwrap_or("."), db); + } + } + #[cfg(not(windows))] + { + db = format!("./{}", db); + } Ok(Self { map: Default::default(), - db: super::SledAsync::new("./hbbs.db", true)?, + db: super::SledAsync::new(&db, true)?, }) }