stability improvements
This commit is contained in:
		
							parent
							
								
									1da6053acf
								
							
						
					
					
						commit
						780c1e54a3
					
				| @ -26,7 +26,7 @@ pub struct NodeInfo { | ||||
| 
 | ||||
| impl NodeInfo { | ||||
|     pub fn is_newer_than(&self, older_self: &Self) -> bool { | ||||
|         self.keepalive > older_self.keepalive | ||||
|         self.keepalive >= older_self.keepalive | ||||
|     } | ||||
| 
 | ||||
|     pub fn to_json(&self) -> String { | ||||
| @ -188,17 +188,18 @@ impl State { | ||||
|     } | ||||
| 
 | ||||
|     /// This returns true if NodeInfo got modified.
 | ||||
|     pub fn process_node_update(&self, (ip, mut node_info): (String, NodeInfo)) -> bool { | ||||
|         if let Some(old_node) = self.nodes.get(&ip) { | ||||
|             if !node_info.is_newer_than(&old_node) { | ||||
|                 return false; | ||||
|             } | ||||
|             node_info.public = node_info.public || old_node.public; | ||||
|     pub fn process_node_update(&self, (ip, node_info): (String, NodeInfo)) -> bool { | ||||
|         let is_update_new = self | ||||
|             .nodes | ||||
|             .get(&ip) | ||||
|             .map(|curr_info| node_info.is_newer_than(&curr_info)) | ||||
|             .unwrap_or(true); | ||||
|         if is_update_new { | ||||
|             println!("Inserting: {}, {}", ip, node_info.to_json()); | ||||
|             node_info.log(&ip); | ||||
|             self.nodes.insert(ip, node_info); | ||||
|         } | ||||
|         println!("Inserting: {}, {}", ip, node_info.to_json()); | ||||
|         node_info.log(&ip); | ||||
|         self.nodes.insert(ip, node_info); | ||||
|         true | ||||
|         is_update_new | ||||
|     } | ||||
| 
 | ||||
|     pub fn get_node_list(&self) -> Vec<(String, NodeInfo)> { | ||||
|  | ||||
| @ -175,8 +175,8 @@ impl Update for MyServer { | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             yield Err(error_status); | ||||
|             state.decrease_mratls_conns(); | ||||
|             yield Err(error_status); | ||||
|         }; | ||||
| 
 | ||||
|         Ok(Response::new(Box::pin(stream) as Self::GetUpdatesStream)) | ||||
|  | ||||
| @ -33,7 +33,7 @@ impl From<(String, datastore::NodeInfo)> for NodesResp { | ||||
|         let last_keepalive: DateTime<Utc> = node_info.keepalive.into(); | ||||
|         let joined_at = joined_at.format("%Y-%m-%d %H:%M:%S").to_string(); | ||||
|         let last_keepalive = last_keepalive.format("%Y-%m-%d %H:%M:%S").to_string(); | ||||
|         crate::http_server::NodesResp { | ||||
|         NodesResp { | ||||
|             ip, | ||||
|             joined_at, | ||||
|             last_keepalive, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user