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 *