diff --git a/Cargo.lock b/Cargo.lock index e0fd4b0..d99f85b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -546,7 +546,7 @@ dependencies = [ [[package]] name = "hbbs" -version = "1.1.3" +version = "1.1.4" dependencies = [ "base64 0.13.0", "clap", diff --git a/Cargo.toml b/Cargo.toml index 2ee84bd..9a688a7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hbbs" -version = "1.1.3" +version = "1.1.4" authors = ["open-trade "] edition = "2018" build= "build.rs" diff --git a/src/lic.rs b/src/lic.rs index 428ead4..2a0d132 100644 --- a/src/lic.rs +++ b/src/lic.rs @@ -1,8 +1,8 @@ use hbb_common::{bail, log, ResultType}; +use rand::Rng; use serde_derive::{Deserialize, Serialize}; use std::io::prelude::*; use std::path::Path; -use rand::Rng; #[derive(Debug, PartialEq, Default, Serialize, Deserialize, Clone)] pub struct Machine { diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index 46c2142..8f9e5f1 100644 --- a/src/rendezvous_server.rs +++ b/src/rendezvous_server.rs @@ -400,7 +400,9 @@ impl RendezvousServer { } let id = rk.id; let mut res = register_pk_response::Result::OK; - if let Some(peer) = self.pm.get(&id).await { + if id.len() < 6 { + res = register_pk_response::Result::UUID_MISMATCH; + } else if let Some(peer) = self.pm.get(&id).await { if peer.uuid.is_empty() { self.pm.update_pk(id, addr, rk.uuid, rk.pk); } else if peer.uuid != rk.uuid { @@ -585,9 +587,13 @@ impl RendezvousServer { &addr ); let mut msg_out = RendezvousMessage::new(); - let pk = match self.pm.get(&la.id).await { - Some(peer) => peer.pk, - _ => Vec::new(), + let pk = if la.id.is_empty() { + Vec::new() + } else { + match self.pm.get(&la.id).await { + Some(peer) => peer.pk, + _ => Vec::new(), + } }; let mut p = PunchHoleResponse { socket_addr: la.local_addr.clone(),