Commit ac5a65b5 authored by nanamicat's avatar nanamicat

clean

parent 59c52ce0
......@@ -88,6 +88,13 @@ impl Router {
self.addr.is_some()
}
pub fn apply(&mut self, via: &mut BTreeMap<RouterID, RouterID>, plan: &mut BTreeMap<RegionID, BTreeMap<GatewayGroupID, GatewayID>>) {
self.via.append(via);
for (region, mut plan) in std::mem::take(plan) {
self.plan.entry(region).or_default().append(&mut plan);
}
}
pub fn on_message(&mut self, uplink: &mut Uplink, addr: SocketAddr, updating: &mut UpdatingState, now: Instant) -> Option<Downlink> {
if uplink.peers.len() == self.peers.len() {
for (current, new) in self.peers.values_mut().zip(&mut uplink.peers) {
......@@ -110,8 +117,7 @@ impl Router {
for (to, via) in self.via.iter_mut() {
*via = *to;
}
self.via.append(&mut uplink.via);
self.plan.append(&mut uplink.plan);
self.apply(&mut uplink.via, &mut uplink.plan);
self.online(addr, now);
}
None
......@@ -121,8 +127,7 @@ impl Router {
self.online(addr, now);
if updating.router_id == self.id {
updating.router_id = Default::default();
self.via.append(&mut updating.message.via);
self.plan.append(&mut updating.message.plan);
self.apply(&mut updating.message.via, &mut updating.message.plan);
self.last_update = now;
}
None
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment