|
|
@@ -400,7 +400,9 @@ impl RendezvousServer {
|
|
400
|
400
|
}
|
|
401
|
401
|
let id = rk.id;
|
|
402
|
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
|
406
|
if peer.uuid.is_empty() {
|
|
405
|
407
|
self.pm.update_pk(id, addr, rk.uuid, rk.pk);
|
|
406
|
408
|
} else if peer.uuid != rk.uuid {
|
|
|
@@ -585,9 +587,13 @@ impl RendezvousServer {
|
|
585
|
587
|
&addr
|
|
586
|
588
|
);
|
|
587
|
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
|
598
|
let mut p = PunchHoleResponse {
|
|
593
|
599
|
socket_addr: la.local_addr.clone(),
|