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.

OK?

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