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]]
name = "hbbs"
version = "1.1.3"
version = "1.1.4"
dependencies = [
"base64 0.13.0",
"clap",

View File

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

View File

@@ -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 {

View File

@@ -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(),