version 1.41, 2013/12/25 01:46:00 |
version 1.42, 2014/08/19 03:28:53 |
|
|
{ |
{ |
fprintf(stderr, |
fprintf(stderr, |
"usage: tcpbench -l\n" |
"usage: tcpbench -l\n" |
" tcpbench [-uv] [-B buf] [-b addr] [-k kvars] [-n connections]\n" |
" tcpbench [-46uv] [-B buf] [-b addr] [-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 [-uv] [-B buf] [-k kvars] [-p port]\n" |
" tcpbench -s [-46uv] [-B buf] [-k kvars] [-p port]\n" |
" [-r interval] [-S space] [-T toskeyword] [-V rtable]\n"); |
" [-r interval] [-S space] [-T toskeyword] [-V rtable]\n"); |
exit(1); |
exit(1); |
} |
} |
|
|
const char *errstr; |
const char *errstr; |
struct rlimit rl; |
struct rlimit rl; |
int ch, herr, nconn; |
int ch, herr, nconn; |
|
int family = PF_UNSPEC; |
struct nlist nl[] = { { "_tcbtable" }, { "" } }; |
struct nlist nl[] = { { "_tcbtable" }, { "" } }; |
const char *host = NULL, *port = DEFAULT_PORT, *srcbind = NULL; |
const char *host = NULL, *port = DEFAULT_PORT, *srcbind = NULL; |
struct event ev_sigint, ev_sigterm, ev_sighup, ev_progtimer; |
struct event ev_sigint, ev_sigterm, ev_sighup, ev_progtimer; |
|
|
aib = NULL; |
aib = NULL; |
secs = 0; |
secs = 0; |
|
|
while ((ch = getopt(argc, argv, "b:B:hlk:n:p:r:sS:t:T:uvV:")) != -1) { |
while ((ch = getopt(argc, argv, "46b:B:hlk:n:p:r:sS:t:T:uvV:")) != -1) { |
switch (ch) { |
switch (ch) { |
|
case '4': |
|
family = PF_INET; |
|
break; |
|
case '6': |
|
family = PF_INET6; |
|
break; |
case 'b': |
case 'b': |
srcbind = optarg; |
srcbind = optarg; |
break; |
break; |
|
|
} |
} |
|
|
bzero(&hints, sizeof(hints)); |
bzero(&hints, sizeof(hints)); |
|
hints.ai_family = family; |
if (UDP_MODE) { |
if (UDP_MODE) { |
hints.ai_socktype = SOCK_DGRAM; |
hints.ai_socktype = SOCK_DGRAM; |
hints.ai_protocol = IPPROTO_UDP; |
hints.ai_protocol = IPPROTO_UDP; |