narrow down bugs

This commit is contained in:
John Smith 2022-08-28 22:34:24 -04:00
parent 33b7d102aa
commit acf65fa48b
2 changed files with 8 additions and 11 deletions

View File

@ -120,10 +120,11 @@ impl BucketEntryInner {
&mut self, &mut self,
signed_node_info: SignedNodeInfo, signed_node_info: SignedNodeInfo,
allow_invalid_signature: bool, allow_invalid_signature: bool,
) -> bool { ) {
// Don't allow invalid signatures unless we are explicitly allowing it // Don't allow invalid signatures unless we are explicitly allowing it
if !allow_invalid_signature && !signed_node_info.signature.valid { if !allow_invalid_signature && !signed_node_info.signature.valid {
return false; log_rtab!(debug "Invalid signature on signed node info: {:?}", signed_node_info);
return;
} }
// See if we have an existing signed_node_info to update or not // See if we have an existing signed_node_info to update or not
@ -131,16 +132,16 @@ impl BucketEntryInner {
// If the timestamp hasn't changed or is less, ignore this update // If the timestamp hasn't changed or is less, ignore this update
if signed_node_info.timestamp <= current_sni.timestamp { if signed_node_info.timestamp <= current_sni.timestamp {
// If we received a node update with the same timestamp // If we received a node update with the same timestamp
// we can try again, but only if our network hasn't changed // we can make this node live again, but only if our network hasn't changed
if !self.updated_since_last_network_change if !self.updated_since_last_network_change
&& signed_node_info.timestamp == current_sni.timestamp && signed_node_info.timestamp == current_sni.timestamp
{ {
// No need to update the signednodeinfo though since the timestamp is the same // No need to update the signednodeinfo though since the timestamp is the same
// Just return true so we can make the node not dead // Just return true so we can make the node not dead
self.updated_since_last_network_change = true; self.updated_since_last_network_change = true;
return true; self.touch_last_seen(intf::get_timestamp());
} }
return false; return;
} }
} }
@ -152,9 +153,8 @@ impl BucketEntryInner {
// Update the signed node info // Update the signed node info
self.opt_signed_node_info = Some(signed_node_info); self.opt_signed_node_info = Some(signed_node_info);
self.updated_since_last_network_change = true; self.updated_since_last_network_change = true;
true self.touch_last_seen(intf::get_timestamp());
} }
pub fn update_local_node_info(&mut self, local_node_info: LocalNodeInfo) { pub fn update_local_node_info(&mut self, local_node_info: LocalNodeInfo) {
self.opt_local_node_info = Some(local_node_info) self.opt_local_node_info = Some(local_node_info)

View File

@ -617,10 +617,7 @@ impl RoutingTable {
} }
self.create_node_ref(node_id, |e| { self.create_node_ref(node_id, |e| {
if e.update_signed_node_info(signed_node_info, allow_invalid_signature) { e.update_signed_node_info(signed_node_info, allow_invalid_signature);
// at least someone thought this node was live and its node info changed so lets try to contact it
e.touch_last_seen(intf::get_timestamp());
}
}) })
} }