version 1.97, 2010/04/20 07:28:28 |
version 1.98, 2010/07/03 04:44:51 |
|
|
int Oflag; /* TCP send buffer size */ |
int Oflag; /* TCP send buffer size */ |
int Sflag; /* TCP MD5 signature option */ |
int Sflag; /* TCP MD5 signature option */ |
int Tflag = -1; /* IP Type of Service */ |
int Tflag = -1; /* IP Type of Service */ |
u_int rdomain; |
u_int rtableid; |
|
|
int timeout = -1; |
int timeout = -1; |
int family = AF_UNSPEC; |
int family = AF_UNSPEC; |
|
|
uflag = 1; |
uflag = 1; |
break; |
break; |
case 'V': |
case 'V': |
rdomain = (unsigned int)strtonum(optarg, 0, |
rtableid = (unsigned int)strtonum(optarg, 0, |
RT_TABLEID_MAX, &errstr); |
RT_TABLEID_MAX, &errstr); |
if (errstr) |
if (errstr) |
errx(1, "rdomain %s: %s", errstr, optarg); |
errx(1, "rtable %s: %s", errstr, optarg); |
break; |
break; |
case 'v': |
case 'v': |
vflag = 1; |
vflag = 1; |
|
|
res0->ai_protocol)) < 0) |
res0->ai_protocol)) < 0) |
continue; |
continue; |
|
|
if (rdomain) { |
if (rtableid) { |
if (setsockopt(s, IPPROTO_IP, SO_RDOMAIN, &rdomain, |
if (setsockopt(s, IPPROTO_IP, SO_RTABLE, &rtableid, |
sizeof(rdomain)) == -1) |
sizeof(rtableid)) == -1) |
err(1, "setsockopt SO_RDOMAIN"); |
err(1, "setsockopt SO_RTABLE"); |
} |
} |
|
|
/* Bind to a local port or source address if specified. */ |
/* Bind to a local port or source address if specified. */ |
|
|
res0->ai_protocol)) < 0) |
res0->ai_protocol)) < 0) |
continue; |
continue; |
|
|
if (rdomain) { |
if (rtableid) { |
if (setsockopt(s, IPPROTO_IP, SO_RDOMAIN, &rdomain, |
if (setsockopt(s, IPPROTO_IP, SO_RTABLE, &rtableid, |
sizeof(rdomain)) == -1) |
sizeof(rtableid)) == -1) |
err(1, "setsockopt SO_RDOMAIN"); |
err(1, "setsockopt SO_RTABLE"); |
} |
} |
|
|
ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x)); |
ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x)); |
|
|
\t-t Answer TELNET negotiation\n\ |
\t-t Answer TELNET negotiation\n\ |
\t-U Use UNIX domain socket\n\ |
\t-U Use UNIX domain socket\n\ |
\t-u UDP mode\n\ |
\t-u UDP mode\n\ |
\t-V rdomain Specify alternate routing domain\n\ |
\t-V rtable Specify alternate routing table\n\ |
\t-v Verbose\n\ |
\t-v Verbose\n\ |
\t-w secs\t Timeout for connects and final net reads\n\ |
\t-w secs\t Timeout for connects and final net reads\n\ |
\t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\ |
\t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\ |
|
|
fprintf(stderr, |
fprintf(stderr, |
"usage: nc [-46DdhklnrStUuvz] [-I length] [-i interval] [-O length]\n" |
"usage: nc [-46DdhklnrStUuvz] [-I length] [-i interval] [-O length]\n" |
"\t [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS]\n" |
"\t [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS]\n" |
"\t [-V rdomain] [-w timeout] [-X proxy_protocol]\n" |
"\t [-V rtable] [-w timeout] [-X proxy_protocol]\n" |
"\t [-x proxy_address[:port]] [hostname] [port]\n"); |
"\t [-x proxy_address[:port]] [hostname] [port]\n"); |
if (ret) |
if (ret) |
exit(1); |
exit(1); |