mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-13 05:07:23 +08:00
update last_updated of peer info to local now (#211)
time between peers may not be synced, using peer last_updated time may cause peer info being cleared incorrectly
This commit is contained in:
11
Cargo.lock
generated
11
Cargo.lock
generated
@@ -1426,6 +1426,7 @@ dependencies = [
|
||||
"url",
|
||||
"uuid",
|
||||
"windows-sys 0.52.0",
|
||||
"winreg 0.11.0",
|
||||
"zerocopy",
|
||||
"zip",
|
||||
]
|
||||
@@ -7175,6 +7176,16 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winreg"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76a1a57ff50e9b408431e8f97d5456f2807f8eb2a2cd79b06068fc87f8ecf189"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winreg"
|
||||
version = "0.50.0"
|
||||
|
||||
@@ -291,7 +291,11 @@ impl SyncedRouteInfo {
|
||||
peer_infos: &Vec<RoutePeerInfo>,
|
||||
) -> Result<(), Error> {
|
||||
self.check_duplicate_peer_id(my_peer_id, dst_peer_id, peer_infos)?;
|
||||
for route_info in peer_infos.iter() {
|
||||
for mut route_info in peer_infos.iter().map(Clone::clone) {
|
||||
// time between peers may not be synchronized, so update last_update to local now.
|
||||
// note only last_update with larger version will be updated to local saved peer info.
|
||||
route_info.last_update = SystemTime::now();
|
||||
|
||||
self.peer_infos
|
||||
.entry(route_info.peer_id)
|
||||
.and_modify(|old_entry| {
|
||||
|
||||
Reference in New Issue
Block a user