mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2026-04-12 02:36:15 +00:00
fix
This commit is contained in:
@@ -23,7 +23,7 @@ use std::{
|
|||||||
time::Instant,
|
time::Instant,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone, Debug)]
|
||||||
struct Peer {
|
struct Peer {
|
||||||
socket_addr: SocketAddr,
|
socket_addr: SocketAddr,
|
||||||
last_reg_time: Instant,
|
last_reg_time: Instant,
|
||||||
@@ -80,6 +80,7 @@ impl PeerMap {
|
|||||||
pk: pk.clone(),
|
pk: pk.clone(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
drop(lock);
|
||||||
let ip = socket_addr.ip().to_string();
|
let ip = socket_addr.ip().to_string();
|
||||||
self.db.insert(id, PeerSerde { ip, uuid, pk });
|
self.db.insert(id, PeerSerde { ip, uuid, pk });
|
||||||
}
|
}
|
||||||
@@ -192,13 +193,21 @@ impl RendezvousServer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(rendezvous_message::Union::register_pk(rk)) => {
|
Some(rendezvous_message::Union::register_pk(rk)) => {
|
||||||
|
if rk.uuid.is_empty() {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let id = rk.id;
|
let id = rk.id;
|
||||||
let mut res = register_pk_response::Result::OK;
|
let mut res = register_pk_response::Result::OK;
|
||||||
if let Some(peer) = self.pm.get(&id).await {
|
if let Some(peer) = self.pm.get(&id).await {
|
||||||
if peer.uuid != rk.uuid {
|
if !peer.uuid.is_empty() && peer.uuid != rk.uuid {
|
||||||
log::warn!("Peer {} pk mismatch: {:?} vs {:?}", id, rk.uuid, peer.uuid);
|
log::warn!(
|
||||||
|
"Peer {} uuid mismatch: {:?} vs {:?}",
|
||||||
|
id,
|
||||||
|
rk.uuid,
|
||||||
|
peer.uuid
|
||||||
|
);
|
||||||
res = register_pk_response::Result::UUID_MISMATCH;
|
res = register_pk_response::Result::UUID_MISMATCH;
|
||||||
} else if peer.pk != rk.pk {
|
} else if peer.uuid.is_empty() || peer.pk != rk.pk {
|
||||||
self.pm.update_pk(id, addr, rk.uuid, rk.pk);
|
self.pm.update_pk(id, addr, rk.uuid, rk.pk);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user