some guys use empty id

This commit is contained in:
open-trade
2021-05-11 20:28:43 +08:00
parent af4469711c
commit 411e963187
4 changed files with 13 additions and 7 deletions

2
Cargo.lock generated
View File

@@ -546,7 +546,7 @@ dependencies = [
[[package]] [[package]]
name = "hbbs" name = "hbbs"
version = "1.1.3" version = "1.1.4"
dependencies = [ dependencies = [
"base64 0.13.0", "base64 0.13.0",
"clap", "clap",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "hbbs" name = "hbbs"
version = "1.1.3" version = "1.1.4"
authors = ["open-trade <info@opentradesolutions.com>"] authors = ["open-trade <info@opentradesolutions.com>"]
edition = "2018" edition = "2018"
build= "build.rs" build= "build.rs"

View File

@@ -1,8 +1,8 @@
use hbb_common::{bail, log, ResultType}; use hbb_common::{bail, log, ResultType};
use rand::Rng;
use serde_derive::{Deserialize, Serialize}; use serde_derive::{Deserialize, Serialize};
use std::io::prelude::*; use std::io::prelude::*;
use std::path::Path; use std::path::Path;
use rand::Rng;
#[derive(Debug, PartialEq, Default, Serialize, Deserialize, Clone)] #[derive(Debug, PartialEq, Default, Serialize, Deserialize, Clone)]
pub struct Machine { pub struct Machine {

View File

@@ -400,7 +400,9 @@ impl RendezvousServer {
} }
let id = rk.id; let id = rk.id;
let mut res = register_pk_response::Result::OK; 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() { if peer.uuid.is_empty() {
self.pm.update_pk(id, addr, rk.uuid, rk.pk); self.pm.update_pk(id, addr, rk.uuid, rk.pk);
} else if peer.uuid != rk.uuid { } else if peer.uuid != rk.uuid {
@@ -585,9 +587,13 @@ impl RendezvousServer {
&addr &addr
); );
let mut msg_out = RendezvousMessage::new(); let mut msg_out = RendezvousMessage::new();
let pk = match self.pm.get(&la.id).await { let pk = if la.id.is_empty() {
Some(peer) => peer.pk, Vec::new()
_ => Vec::new(), } else {
match self.pm.get(&la.id).await {
Some(peer) => peer.pk,
_ => Vec::new(),
}
}; };
let mut p = PunchHoleResponse { let mut p = PunchHoleResponse {
socket_addr: la.local_addr.clone(), socket_addr: la.local_addr.clone(),