修复--route命令显示异常的问题

This commit is contained in:
lubeilin
2023-07-29 21:14:31 +08:00
parent d336d938a9
commit fbe01d8cbf
2 changed files with 7 additions and 4 deletions
+6 -4
View File
@@ -257,9 +257,11 @@ impl Context {
}
}
pub fn route_to_id(&self, route_key: &RouteKey) -> Option<Ipv4Addr> {
for x in self.inner.route_table_time.iter() {
if &x.key().0 == route_key {
return Some(x.key().1);
for x in self.inner.route_table.iter() {
for route in x.value() {
if &route.route_key() == route_key {
return Some(*x.key());
}
}
}
None
@@ -311,8 +313,8 @@ impl Context {
drop(v);
routes.retain(|x| x.route_key() != route_key);
self.inner.route_table.insert(*id, routes);
self.inner.route_table_time.remove(&(route_key, *id));
}
self.inner.route_table_time.remove(&(route_key, *id));
drop(guard);
}
pub fn update_read_time(&self, id: &Ipv4Addr, route_key: &RouteKey) {
+1
View File
@@ -29,6 +29,7 @@ impl Idle {
for entry in self.context.inner.route_table_time.iter() {
let last_read = entry.value().load().elapsed();
if last_read >= self.read_idle {
entry.remove();
return Ok((entry.key().1.clone(), entry.key().0.clone()));
} else {
if max < last_read {