From 5e0f429e84c54de55aaef9e0c1df8a7faa317b5a Mon Sep 17 00:00:00 2001 From: opentrade Date: Tue, 6 Apr 2021 16:18:09 +0800 Subject: [PATCH] remove uuid back compatibility --- libs/hbb_common | 2 +- src/rendezvous_server.rs | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/libs/hbb_common b/libs/hbb_common index 002939a..7bf9906 160000 --- a/libs/hbb_common +++ b/libs/hbb_common @@ -1 +1 @@ -Subproject commit 002939a1037c786d2651a779492a7c813ea4e54a +Subproject commit 7bf9906c1fabc2e4437871715db4ef7883fca3d4 diff --git a/src/rendezvous_server.rs b/src/rendezvous_server.rs index 75e670e..94daf88 100644 --- a/src/rendezvous_server.rs +++ b/src/rendezvous_server.rs @@ -321,6 +321,27 @@ impl RendezvousServer { } break; } + Some(rendezvous_message::Union::register_pk(rk)) => { + if rk.uuid.is_empty() { + break; + } + let mut res = register_pk_response::Result::OK; + if let Some(peer) = rs.pm.get(&rk.id).await { + if peer.uuid != rk.uuid { + res = register_pk_response::Result::ID_EXISTS; + } + } + let mut msg_out = RendezvousMessage::new(); + msg_out.set_register_pk_response(RegisterPkResponse { + result: res.into(), + ..Default::default() + }); + if let Some(tcp) = sender.as_mut() { + if let Ok(bytes) = msg_out.write_to_bytes() { + allow_err!(tcp.send(Bytes::from(bytes)).await); + } + } + } _ => { break; } @@ -372,7 +393,7 @@ impl RendezvousServer { let id = rk.id; let mut res = register_pk_response::Result::OK; if let Some(peer) = self.pm.get(&id).await { - if !peer.uuid.is_empty() && peer.uuid != rk.uuid { + if peer.uuid != rk.uuid { log::warn!( "Peer {} uuid mismatch: {:?} vs {:?}", id, @@ -380,7 +401,7 @@ impl RendezvousServer { peer.uuid ); res = register_pk_response::Result::UUID_MISMATCH; - } else if peer.uuid.is_empty() || peer.pk != rk.pk { + } else if peer.pk != rk.pk { self.pm.update_pk(id, addr, rk.uuid, rk.pk); } } else {