Apply by doing:
cd /usr/src
patch -p0 < 003_arp.patch
And then rebuild your kernel.
Index: sys/netinet/if_ether.c
===================================================================
RCS file: /cvs/src/sys/netinet/if_ether.c,v
retrieving revision 1.48
retrieving revision 1.48.2.1
diff -u -p -r1.48 -r1.48.2.1
--- sys/netinet/if_ether.c 2 Jun 2003 23:28:13 -0000 1.48
+++ sys/netinet/if_ether.c 31 Oct 2003 00:07:52 -0000 1.48.2.1
@@ -740,10 +740,18 @@ arplookup(addr, create, proxy)
rt->rt_refcnt--;
if ((rt->rt_flags & RTF_GATEWAY) || (rt->rt_flags & RTF_LLINFO) == 0 ||
rt->rt_gateway->sa_family != AF_LINK) {
- if (create)
+ if (create) {
log(LOG_DEBUG,
"arplookup: unable to enter address for %s\n",
inet_ntoa(sin.sin_addr));
+ if (rt->rt_refcnt <= 0 &&
+ (rt->rt_flags & RTF_CLONED) != 0) {
+ rtrequest(RTM_DELETE,
+ (struct sockaddr *)rt_key(rt),
+ rt->rt_gateway, rt_mask(rt), rt->rt_flags,
+ 0);
+ }
+ }
return (0);
}
return ((struct llinfo_arp *)rt->rt_llinfo);