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 */
> 

Reply via email to