Claudio Jeker(cje...@diehard.n-r-g.com) on 2021.06.24 17:06:36 +0200: > The network flush code only operates on peerself (like all the other > network commands). Instead of passing a peer to the tree walker just > default to peerself in network_flush_upcall(). > This makes the code more obivous that it operates on peerself. >
ok > -- > :wq Claudio > > Index: rde.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v > retrieving revision 1.528 > diff -u -p -r1.528 rde.c > --- rde.c 24 Jun 2021 13:03:31 -0000 1.528 > +++ rde.c 24 Jun 2021 15:00:32 -0000 > @@ -517,7 +517,7 @@ badnetdel: > break; > } > if (rib_dump_new(RIB_ADJ_IN, AID_UNSPEC, > - RDE_RUNNER_ROUNDS, peerself, network_flush_upcall, > + RDE_RUNNER_ROUNDS, NULL, network_flush_upcall, > NULL, NULL) == -1) > log_warn("rde_dispatch: IMSG_NETWORK_FLUSH"); > break; > @@ -4065,13 +4065,12 @@ network_dump_upcall(struct rib_entry *re > static void > network_flush_upcall(struct rib_entry *re, void *ptr) > { > - struct rde_peer *peer = ptr; > struct bgpd_addr addr; > struct prefix *p; > u_int32_t i; > u_int8_t prefixlen; > > - p = prefix_bypeer(re, peer); > + p = prefix_bypeer(re, peerself); > if (p == NULL) > return; > if ((prefix_aspath(p)->flags & F_ANN_DYNAMIC) != F_ANN_DYNAMIC) > @@ -4084,14 +4083,14 @@ network_flush_upcall(struct rib_entry *r > struct rib *rib = rib_byid(i); > if (rib == NULL) > continue; > - if (prefix_withdraw(rib, peer, &addr, prefixlen) == 1) > - rde_update_log("flush announce", i, peer, > + if (prefix_withdraw(rib, peerself, &addr, prefixlen) == 1) > + rde_update_log("flush announce", i, peerself, > NULL, &addr, prefixlen); > } > > - if (prefix_withdraw(rib_byid(RIB_ADJ_IN), peer, &addr, > + if (prefix_withdraw(rib_byid(RIB_ADJ_IN), peerself, &addr, > prefixlen) == 1) > - peer->prefix_cnt--; > + peerself->prefix_cnt--; > } > > /* clean up */ >