=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tcpbench/tcpbench.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- src/usr.bin/tcpbench/tcpbench.c 2011/03/16 08:06:10 1.21 +++ src/usr.bin/tcpbench/tcpbench.c 2011/06/21 17:31:07 1.22 @@ -719,12 +719,15 @@ warn("socket"); continue; } - if (ptb->Vflag && ai->ai_family == AF_INET) { - if (setsockopt(sock, IPPROTO_IP, SO_RTABLE, - &ptb->Vflag, sizeof(ptb->Vflag)) == -1) - err(1, "setsockopt SO_RTABLE"); - } else if (ptb->Vflag) - warnx("rtable only supported on AF_INET"); + if (ptb->Vflag) { + if (setsockopt(sock, SOL_SOCKET, SO_RTABLE, + &ptb->Vflag, sizeof(ptb->Vflag)) == -1) { + if (errno == ENOPROTOOPT) + warn("set rtable"); + else + err(1, "setsockopt SO_RTABLE"); + } + } if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) warn("reuse port"); @@ -817,12 +820,15 @@ warn("socket"); continue; } - if (ptb->Vflag && ai->ai_family == AF_INET) { - if (setsockopt(sock, IPPROTO_IP, SO_RTABLE, - &ptb->Vflag, sizeof(ptb->Vflag)) == -1) - err(1, "setsockopt SO_RTABLE"); - } else if (ptb->Vflag) - warnx("rtable only supported on AF_INET"); + if (ptb->Vflag) { + if (setsockopt(sock, SOL_SOCKET, SO_RTABLE, + &ptb->Vflag, sizeof(ptb->Vflag)) == -1) { + if (errno == ENOPROTOOPT) + warn("set rtable"); + else + err(1, "setsockopt SO_RTABLE"); + } + } if (ptb->Sflag) { if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &ptb->Sflag, sizeof(ptb->Sflag)) == -1)