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