On 07/04/14(Mon) 12:49, Mike Belopuhov wrote:
> Hi,
> 
> I need this one bit for my snmpd diff as well.  rtdeletemsg does
> rtrequest1 and rt_missmsg in one go with some magic requried for
> that to happen.

Makes sense to me, plus I like the fact that you're removing one
custom use of rtrequest1(9). ok mpi@

> 
> diff --git sys/netinet/if_ether.c sys/netinet/if_ether.c
> index af3f3cd..548192f 100644
> --- sys/netinet/if_ether.c
> +++ sys/netinet/if_ether.c
> @@ -764,32 +764,28 @@ out:
>   */
>  void
>  arptfree(struct llinfo_arp *la)
>  {
>       struct rtentry *rt = la->la_rt;
>       struct sockaddr_dl *sdl;
> -     struct rt_addrinfo info;
>       u_int tid = 0;
>  
>       if (rt == NULL)
>               panic("arptfree");
>       if (rt->rt_refcnt > 0 && (sdl = SDL(rt->rt_gateway)) &&
>           sdl->sdl_family == AF_LINK) {
>               sdl->sdl_alen = 0;
>               la->la_asked = 0;
>               rt->rt_flags &= ~RTF_REJECT;
>               return;
>       }
> -     memset(&info, 0, sizeof(info));
> -     info.rti_info[RTAX_DST] = rt_key(rt);
> -     info.rti_info[RTAX_NETMASK] = rt_mask(rt);
>  
>       if (rt->rt_ifp)
>               tid = rt->rt_ifp->if_rdomain;
>  
> -     rtrequest1(RTM_DELETE, &info, rt->rt_priority, NULL, tid);
> +     rtdeletemsg(rt, tid);
>  }
>  
>  /*
>   * Lookup or enter a new address in arptab.
>   */
>  struct llinfo_arp *
> 

Reply via email to