It seems like something like that is missing :)
As previously, it does not behave correctly when you run it with route
-T$rdomain exec
and do not specify arp -V$rdomain, but that should not be used that way.
Index: arp.c
===================================================================
RCS file: /cvs/src/usr.sbin/arp/arp.c,v
retrieving revision 1.50
diff -u -r1.50 arp.c
--- arp.c 11 Jan 2011 16:34:20 -0000 1.50
+++ arp.c 25 Apr 2011 23:28:00 -0000
@@ -242,6 +242,10 @@
s = socket(PF_ROUTE, SOCK_RAW, 0);
if (s < 0)
err(1, "socket");
+ if (rdomain != 0)
+ if (setsockopt(s, AF_ROUTE, ROUTE_TABLEFILTER,
+ &rdomain, sizeof(rdomain)) < 0)
+ err(1, "setsockopt(ROUTE_TABLEFILTER)");
}
struct sockaddr_in so_mask = { 8, 0, 0, { 0xffffffff } };