diff --git a/vnt/src/channel/context.rs b/vnt/src/channel/context.rs index 8f47f8b..a18a49e 100644 --- a/vnt/src/channel/context.rs +++ b/vnt/src/channel/context.rs @@ -347,6 +347,15 @@ impl RouteTable { _ => {} } let key = route.route_key(); + if only_if_absent { + if let Some((_, list)) = self.route_table.read().get(&id) { + for (x, _) in list { + if x.route_key() == key { + return; + } + } + } + } let mut route_table = self.route_table.write(); let (_, list) = route_table .entry(id)