version 1.63, 2020/05/04 12:13:09 |
version 1.64, 2021/02/04 18:46:25 |
|
|
|
|
/* Our tcpbench globals */ |
/* Our tcpbench globals */ |
struct { |
struct { |
|
int Dflag; /* Socket debug */ |
int Sflag; /* Socket buffer size */ |
int Sflag; /* Socket buffer size */ |
u_int rflag; /* Report rate (ms) */ |
u_int rflag; /* Report rate (ms) */ |
int sflag; /* True if server */ |
int sflag; /* True if server */ |
|
|
{ |
{ |
fprintf(stderr, |
fprintf(stderr, |
"usage: tcpbench -l\n" |
"usage: tcpbench -l\n" |
" tcpbench [-46RUuv] [-B buf] [-b sourceaddr] [-k kvars] [-n connections]\n" |
" tcpbench [-46DRUuv] [-B buf] [-b sourceaddr] [-k kvars] [-n connections]\n" |
" [-p port] [-r interval] [-S space] [-T toskeyword]\n" |
" [-p port] [-r interval] [-S space] [-T toskeyword]\n" |
" [-t secs] [-V rtable] hostname\n" |
" [-t secs] [-V rtable] hostname\n" |
" tcpbench -s [-46Uuv] [-B buf] [-k kvars] [-p port] [-r interval]\n" |
" tcpbench -s [-46DUuv] [-B buf] [-k kvars] [-p port] [-r interval]\n" |
" [-S space] [-T toskeyword] [-V rtable] [hostname]\n"); |
" [-S space] [-T toskeyword] [-V rtable] [hostname]\n"); |
exit(1); |
exit(1); |
} |
} |
|
|
warn("socket"); |
warn("socket"); |
continue; |
continue; |
} |
} |
|
if (ptb->Dflag) { |
|
if (setsockopt(sock, SOL_SOCKET, SO_DEBUG, |
|
&ptb->Dflag, sizeof(ptb->Dflag))) |
|
err(1, "setsockopt SO_DEBUG"); |
|
} |
if (ptb->Tflag != -1 && ai->ai_family == AF_INET) { |
if (ptb->Tflag != -1 && ai->ai_family == AF_INET) { |
if (setsockopt(sock, IPPROTO_IP, IP_TOS, |
if (setsockopt(sock, IPPROTO_IP, IP_TOS, |
&ptb->Tflag, sizeof(ptb->Tflag))) |
&ptb->Tflag, sizeof(ptb->Tflag))) |
|
|
warn("socket"); |
warn("socket"); |
continue; |
continue; |
} |
} |
|
if (ptb->Dflag) { |
|
if (setsockopt(sock, SOL_SOCKET, SO_DEBUG, |
|
&ptb->Dflag, sizeof(ptb->Dflag))) |
|
err(1, "setsockopt SO_DEBUG"); |
|
} |
if (aib != NULL) { |
if (aib != NULL) { |
saddr_ntop(aib->ai_addr, aib->ai_addrlen, |
saddr_ntop(aib->ai_addr, aib->ai_addrlen, |
tmp, sizeof(tmp)); |
tmp, sizeof(tmp)); |
|
|
setvbuf(stdout, NULL, _IOLBF, 0); |
setvbuf(stdout, NULL, _IOLBF, 0); |
ptb = &tcpbench; |
ptb = &tcpbench; |
ptb->dummybuf_len = 0; |
ptb->dummybuf_len = 0; |
|
ptb->Dflag = 0; |
ptb->Sflag = ptb->sflag = ptb->vflag = ptb->Rflag = ptb->Uflag = 0; |
ptb->Sflag = ptb->sflag = ptb->vflag = ptb->Rflag = ptb->Uflag = 0; |
ptb->kvmh = NULL; |
ptb->kvmh = NULL; |
ptb->kvars = NULL; |
ptb->kvars = NULL; |
|
|
aib = NULL; |
aib = NULL; |
secs = 0; |
secs = 0; |
|
|
while ((ch = getopt(argc, argv, "46b:B:hlk:n:p:Rr:sS:t:T:uUvV:")) != -1) { |
while ((ch = getopt(argc, argv, "46b:B:Dhlk:n:p:Rr:sS:t:T:uUvV:")) |
|
!= -1) { |
switch (ch) { |
switch (ch) { |
case '4': |
case '4': |
family = PF_INET; |
family = PF_INET; |
|
|
break; |
break; |
case 'b': |
case 'b': |
srcbind = optarg; |
srcbind = optarg; |
|
break; |
|
case 'D': |
|
ptb->Dflag = 1; |
break; |
break; |
case 'l': |
case 'l': |
list_kvars(); |
list_kvars(); |