Now that we support SO_RTABLE on the socket level, it makes sense to cleanup the tree. OK?
Index: sbin/ping/ping.c =================================================================== RCS file: /home/cvs/src/sbin/ping/ping.c,v retrieving revision 1.88 diff -u -p -r1.88 ping.c --- sbin/ping/ping.c 3 Jul 2010 04:44:51 -0000 1.88 +++ sbin/ping/ping.c 20 Jun 2011 15:31:59 -0000 @@ -312,7 +312,7 @@ main(int argc, char *argv[]) errx(1, "rtable value is %s: %s", errstr, optarg); - if (setsockopt(s, IPPROTO_IP, SO_RTABLE, &rtableid, + if (setsockopt(s, SOL_SOCKET, SO_RTABLE, &rtableid, sizeof(rtableid)) == -1) err(1, "setsockopt SO_RTABLE"); break; Index: usr.bin/nc/netcat.c =================================================================== RCS file: /home/cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.100 diff -u -p -r1.100 netcat.c --- usr.bin/nc/netcat.c 9 Jan 2011 22:16:46 -0000 1.100 +++ usr.bin/nc/netcat.c 20 Jun 2011 15:50:35 -0000 @@ -552,7 +552,7 @@ remote_connect(const char *host, const c continue; if (rtableid) { - if (setsockopt(s, IPPROTO_IP, SO_RTABLE, &rtableid, + if (setsockopt(s, SOL_SOCKET, SO_RTABLE, &rtableid, sizeof(rtableid)) == -1) err(1, "setsockopt SO_RTABLE"); } Index: usr.bin/tcpbench/tcpbench.c =================================================================== RCS file: /home/cvs/src/usr.bin/tcpbench/tcpbench.c,v retrieving revision 1.21 diff -u -p -r1.21 tcpbench.c --- usr.bin/tcpbench/tcpbench.c 16 Mar 2011 08:06:10 -0000 1.21 +++ usr.bin/tcpbench/tcpbench.c 20 Jun 2011 15:53:59 -0000 @@ -719,9 +719,10 @@ server_init(struct addrinfo *aitop, stru warn("socket"); continue; } - if (ptb->Vflag && ai->ai_family == AF_INET) { - if (setsockopt(sock, IPPROTO_IP, SO_RTABLE, - &ptb->Vflag, sizeof(ptb->Vflag)) == -1) + if (ptb->Vflag) { + if (setsockopt(sock, SOL_SOCKET, SO_RTABLE, + &ptb->Vflag, sizeof(ptb->Vflag)) == -1 && + errno != ENOPROTOOPT) err(1, "setsockopt SO_RTABLE"); } else if (ptb->Vflag) warnx("rtable only supported on AF_INET"); @@ -817,9 +818,10 @@ client_init(struct addrinfo *aitop, int warn("socket"); continue; } - if (ptb->Vflag && ai->ai_family == AF_INET) { - if (setsockopt(sock, IPPROTO_IP, SO_RTABLE, - &ptb->Vflag, sizeof(ptb->Vflag)) == -1) + if (ptb->Vflag) { + if (setsockopt(sock, SOL_SOCKET, SO_RTABLE, + &ptb->Vflag, sizeof(ptb->Vflag)) == -1 && + errno != ENOPROTOOPT) err(1, "setsockopt SO_RTABLE"); } else if (ptb->Vflag) warnx("rtable only supported on AF_INET"); Index: usr.bin/telnet/commands.c =================================================================== RCS file: /home/cvs/src/usr.bin/telnet/commands.c,v retrieving revision 1.52 diff -u -p -r1.52 commands.c --- usr.bin/telnet/commands.c 3 Jul 2010 04:44:51 -0000 1.52 +++ usr.bin/telnet/commands.c 20 Jun 2011 16:00:02 -0000 @@ -2397,7 +2397,7 @@ tn(argc, argv) continue; if (rtableid) { - if (setsockopt(net, IPPROTO_IP, SO_RTABLE, &rtableid, + if (setsockopt(net, SOL_SOCKET, SO_RTABLE, &rtableid, sizeof(rtableid)) == -1) perror("setsockopt (SO_RTABLE)"); } Index: usr.sbin/dhcrelay/dhcrelay.c =================================================================== RCS file: /home/cvs/src/usr.sbin/dhcrelay/dhcrelay.c,v retrieving revision 1.34 diff -u -p -r1.34 dhcrelay.c --- usr.sbin/dhcrelay/dhcrelay.c 3 Jul 2010 04:44:52 -0000 1.34 +++ usr.sbin/dhcrelay/dhcrelay.c 20 Jun 2011 16:05:40 -0000 @@ -176,7 +176,7 @@ main(int argc, char *argv[]) if (setsockopt(sp->fd, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt)) == -1) error("setsockopt: %m"); - if (setsockopt(sp->fd, IPPROTO_IP, SO_RTABLE, &rdomain, + if (setsockopt(sp->fd, SOL_SOCKET, SO_RTABLE, &rdomain, sizeof(rdomain)) == -1) error("setsockopt: %m"); if (bind(sp->fd, (struct sockaddr *)&laddr, sizeof laddr) == -1) @@ -197,7 +197,7 @@ main(int argc, char *argv[]) if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt)) == -1) error("setsockopt: %m"); - if (setsockopt(server_fd, IPPROTO_IP, SO_RTABLE, &rdomain, + if (setsockopt(server_fd, SOL_SOCKET, SO_RTABLE, &rdomain, sizeof(rdomain)) == -1) error("setsockopt: %m"); if (bind(server_fd, (struct sockaddr *)&laddr, Index: usr.sbin/ftp-proxy/ftp-proxy.c =================================================================== RCS file: /home/cvs/src/usr.sbin/ftp-proxy/ftp-proxy.c,v retrieving revision 1.22 diff -u -p -r1.22 ftp-proxy.c --- usr.sbin/ftp-proxy/ftp-proxy.c 28 Apr 2011 00:17:28 -0000 1.22 +++ usr.sbin/ftp-proxy/ftp-proxy.c 4 May 2011 11:59:55 -0000 @@ -428,9 +428,8 @@ handle_connection(const int listen_fd, s goto fail; } len = sizeof(s->client_rd); - if (client_sa->sa_family == AF_INET && - getsockopt(s->client_fd, IPPROTO_IP, SO_RTABLE, &s->client_rd, - &len)) { + if (getsockopt(s->client_fd, SOL_SOCKET, SO_RTABLE, &s->client_rd, + &len) && errno != ENOPROTOOPT) { logmsg(LOG_CRIT, "#%d getsockopt failed: %s", s->id, strerror(errno)); goto fail; Index: usr.sbin/ospfd/interface.c =================================================================== RCS file: /home/cvs/src/usr.sbin/ospfd/interface.c,v retrieving revision 1.72 diff -u -p -r1.72 interface.c --- usr.sbin/ospfd/interface.c 9 May 2011 12:24:41 -0000 1.72 +++ usr.sbin/ospfd/interface.c 20 Jun 2011 16:06:12 -0000 @@ -257,7 +257,7 @@ if_init(struct ospfd_conf *xconf, struct rdomain = 0; else { rdomain = ifr.ifr_rdomainid; - if (setsockopt(iface->fd, IPPROTO_IP, SO_RTABLE, + if (setsockopt(iface->fd, SOL_SOCKET, SO_RTABLE, &rdomain, sizeof(rdomain)) == -1) fatal("failed to set rdomain"); } Index: usr.sbin/ripd/interface.c =================================================================== RCS file: /home/cvs/src/usr.sbin/ripd/interface.c,v retrieving revision 1.9 diff -u -p -r1.9 interface.c --- usr.sbin/ripd/interface.c 3 Jul 2010 04:44:52 -0000 1.9 +++ usr.sbin/ripd/interface.c 20 Jun 2011 16:07:31 -0000 @@ -83,7 +83,7 @@ if_init(struct ripd_conf *xconf, struct rdomain = 0; else { rdomain = ifr.ifr_rdomainid; - if (setsockopt(iface->fd, IPPROTO_IP, SO_RTABLE, &rdomain, + if (setsockopt(iface->fd, SOL_SOCKET, SO_RTABLE, &rdomain, sizeof(rdomain)) == -1) fatal("failed to set rdomain"); } Index: usr.sbin/traceroute/traceroute.c =================================================================== RCS file: /home/cvs/src/usr.sbin/traceroute/traceroute.c,v retrieving revision 1.76 diff -u -p -r1.76 traceroute.c --- usr.sbin/traceroute/traceroute.c 23 Apr 2011 10:00:13 -0000 1.76 +++ usr.sbin/traceroute/traceroute.c 20 Jun 2011 16:08:07 -0000 @@ -442,10 +442,10 @@ main(int argc, char *argv[]) if (errstr) errx(1, "rtable value is %s: %s", errstr, optarg); - if (setsockopt(sndsock, IPPROTO_IP, SO_RTABLE, + if (setsockopt(sndsock, SOL_SOCKET, SO_RTABLE, &rtableid, sizeof(rtableid)) == -1) err(1, "setsockopt SO_RTABLE"); - if (setsockopt(s, IPPROTO_IP, SO_RTABLE, + if (setsockopt(s, SOL_SOCKET, SO_RTABLE, &rtableid, sizeof(rtableid)) == -1) err(1, "setsockopt SO_RTABLE"); break;