Browse Source

remove uuid back compatibility

opentrade 4 years ago
parent
commit
5e0f429e84
2 changed files with 24 additions and 3 deletions
  1. 1 1
      libs/hbb_common
  2. 23 2
      src/rendezvous_server.rs

+ 1 - 1
libs/hbb_common

@@ -1 +1 @@
1
-Subproject commit 002939a1037c786d2651a779492a7c813ea4e54a
1
+Subproject commit 7bf9906c1fabc2e4437871715db4ef7883fca3d4

+ 23 - 2
src/rendezvous_server.rs

@@ -321,6 +321,27 @@ impl RendezvousServer {
321 321
                                         }
322 322
                                         break;
323 323
                                     }
324
+                                    Some(rendezvous_message::Union::register_pk(rk)) => {
325
+                                        if rk.uuid.is_empty() {
326
+                                            break;
327
+                                        }
328
+                                        let mut res = register_pk_response::Result::OK;
329
+                                        if let Some(peer) = rs.pm.get(&rk.id).await {
330
+                                            if peer.uuid != rk.uuid {
331
+                                                res = register_pk_response::Result::ID_EXISTS;
332
+                                            }
333
+                                        }
334
+                                        let mut msg_out = RendezvousMessage::new();
335
+                                        msg_out.set_register_pk_response(RegisterPkResponse {
336
+                                            result: res.into(),
337
+                                            ..Default::default()
338
+                                        });
339
+                                        if let Some(tcp) = sender.as_mut() {
340
+                                            if let Ok(bytes) = msg_out.write_to_bytes() {
341
+                                                allow_err!(tcp.send(Bytes::from(bytes)).await);
342
+                                            }
343
+                                        }
344
+                                    }
324 345
                                     _ => {
325 346
                                         break;
326 347
                                     }
@@ -372,7 +393,7 @@ impl RendezvousServer {
372 393
                     let id = rk.id;
373 394
                     let mut res = register_pk_response::Result::OK;
374 395
                     if let Some(peer) = self.pm.get(&id).await {
375
-                        if !peer.uuid.is_empty() && peer.uuid != rk.uuid {
396
+                        if peer.uuid != rk.uuid {
376 397
                             log::warn!(
377 398
                                 "Peer {} uuid mismatch: {:?} vs {:?}",
378 399
                                 id,
@@ -380,7 +401,7 @@ impl RendezvousServer {
380 401
                                 peer.uuid
381 402
                             );
382 403
                             res = register_pk_response::Result::UUID_MISMATCH;
383
-                        } else if peer.uuid.is_empty() || peer.pk != rk.pk {
404
+                        } else if peer.pk != rk.pk {
384 405
                             self.pm.update_pk(id, addr, rk.uuid, rk.pk);
385 406
                         }
386 407
                     } else {