=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tcpbench/tcpbench.c,v retrieving revision 1.36 retrieving revision 1.37 diff -c -r1.36 -r1.37 *** src/usr.bin/tcpbench/tcpbench.c 2012/06/16 17:18:11 1.36 --- src/usr.bin/tcpbench/tcpbench.c 2012/10/02 08:50:15 1.37 *************** *** 61,67 **** /* Our tcpbench globals */ struct { - u_int Vflag; /* rtableid */ int Sflag; /* Socket buffer size (tcp mode) */ u_int rflag; /* Report rate (ms) */ int sflag; /* True if server */ --- 61,66 ---- *************** *** 752,766 **** warn("socket"); continue; } - 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->Tflag != -1 && ai->ai_family == AF_INET) { if (setsockopt(sock, IPPROTO_IP, IP_TOS, &ptb->Tflag, sizeof(ptb->Tflag))) --- 751,756 ---- *************** *** 890,904 **** &ptb->Tflag, sizeof(ptb->Tflag))) err(1, "setsockopt IPV6_TCLASS"); } - 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) --- 880,885 ---- *************** *** 1006,1012 **** extern int optind; extern char *optarg; struct timeval tv; ! unsigned int secs; char kerr[_POSIX2_LINE_MAX], *tmp; struct addrinfo *aitop, *aib, hints; --- 987,993 ---- extern int optind; extern char *optarg; struct timeval tv; ! unsigned int secs, rtable; char kerr[_POSIX2_LINE_MAX], *tmp; struct addrinfo *aitop, *aib, hints; *************** *** 1022,1028 **** setlinebuf(stdout); ptb = &tcpbench; ptb->dummybuf_len = 0; ! ptb->Sflag = ptb->sflag = ptb->vflag = ptb->Vflag = 0; ptb->kvmh = NULL; ptb->kvars = NULL; ptb->rflag = DEFAULT_STATS_INTERVAL; --- 1003,1009 ---- setlinebuf(stdout); ptb = &tcpbench; ptb->dummybuf_len = 0; ! ptb->Sflag = ptb->sflag = ptb->vflag = 0; ptb->kvmh = NULL; ptb->kvars = NULL; ptb->rflag = DEFAULT_STATS_INTERVAL; *************** *** 1076,1086 **** ptb->vflag++; break; case 'V': ! ptb->Vflag = (unsigned int)strtonum(optarg, 0, RT_TABLEID_MAX, &errstr); if (errstr) errx(1, "rtable value is %s: %s", errstr, optarg); break; case 'n': nconn = strtonum(optarg, 0, 65535, &errstr); --- 1057,1069 ---- ptb->vflag++; break; case 'V': ! rtable = (unsigned int)strtonum(optarg, 0, RT_TABLEID_MAX, &errstr); if (errstr) errx(1, "rtable value is %s: %s", errstr, optarg); + if (setrtable(rtable) == -1) + err(1, "setrtable"); break; case 'n': nconn = strtonum(optarg, 0, 65535, &errstr);