Browse Source

some guys use empty id

open-trade 4 years ago
parent
commit
411e963187
4 changed files with 13 additions and 7 deletions
  1. 1 1
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 1 1
      src/lic.rs
  4. 10 4
      src/rendezvous_server.rs

+ 1 - 1
Cargo.lock

@@ -546,7 +546,7 @@ dependencies = [
546
 
546
 
547
 [[package]]
547
 [[package]]
548
 name = "hbbs"
548
 name = "hbbs"
549
-version = "1.1.3"
549
+version = "1.1.4"
550
 dependencies = [
550
 dependencies = [
551
  "base64 0.13.0",
551
  "base64 0.13.0",
552
  "clap",
552
  "clap",

+ 1 - 1
Cargo.toml

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

+ 1 - 1
src/lic.rs

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

+ 10 - 4
src/rendezvous_server.rs

@@ -400,7 +400,9 @@ impl RendezvousServer {
400
                     }
400
                     }
401
                     let id = rk.id;
401
                     let id = rk.id;
402
                     let mut res = register_pk_response::Result::OK;
402
                     let mut res = register_pk_response::Result::OK;
403
-                    if let Some(peer) = self.pm.get(&id).await {
403
+                    if id.len() < 6 {
404
+                      res = register_pk_response::Result::UUID_MISMATCH;
405
+                    } else if let Some(peer) = self.pm.get(&id).await {
404
                         if peer.uuid.is_empty() {
406
                         if peer.uuid.is_empty() {
405
                             self.pm.update_pk(id, addr, rk.uuid, rk.pk);
407
                             self.pm.update_pk(id, addr, rk.uuid, rk.pk);
406
                         } else if peer.uuid != rk.uuid {
408
                         } else if peer.uuid != rk.uuid {
@@ -585,9 +587,13 @@ impl RendezvousServer {
585
             &addr
587
             &addr
586
         );
588
         );
587
         let mut msg_out = RendezvousMessage::new();
589
         let mut msg_out = RendezvousMessage::new();
588
-        let pk = match self.pm.get(&la.id).await {
589
-            Some(peer) => peer.pk,
590
-            _ => Vec::new(),
590
+        let pk = if la.id.is_empty() {
591
+            Vec::new()
592
+        } else {
593
+            match self.pm.get(&la.id).await {
594
+                Some(peer) => peer.pk,
595
+                _ => Vec::new(),
596
+            }
591
         };
597
         };
592
         let mut p = PunchHoleResponse {
598
         let mut p = PunchHoleResponse {
593
             socket_addr: la.local_addr.clone(),
599
             socket_addr: la.local_addr.clone(),