diff options
Diffstat (limited to 'src/usr.bin/nc/netcat.c')
-rw-r--r-- | src/usr.bin/nc/netcat.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c index a2cb168e32..5e034466d4 100644 --- a/src/usr.bin/nc/netcat.c +++ b/src/usr.bin/nc/netcat.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: netcat.c,v 1.74 2004/09/15 18:44:45 deraadt Exp $ */ | 1 | /* $OpenBSD: netcat.c,v 1.75 2004/10/17 03:13:55 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> | 3 | * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> |
4 | * | 4 | * |
@@ -127,9 +127,14 @@ main(int argc, char *argv[]) | |||
127 | family = AF_UNIX; | 127 | family = AF_UNIX; |
128 | break; | 128 | break; |
129 | case 'X': | 129 | case 'X': |
130 | socksv = (int)strtoul(optarg, &endp, 10); | 130 | if (strcasecmp(optarg, "connect") == 0) |
131 | if ((socksv != 4 && socksv != 5) || *endp != '\0') | 131 | socksv = -1; /* HTTP proxy CONNECT */ |
132 | errx(1, "only SOCKS version 4 and 5 supported"); | 132 | else if (strcmp(optarg, "4") == 0) |
133 | socksv = 4; /* SOCKS v.4 */ | ||
134 | else if (strcmp(optarg, "5") == 0) | ||
135 | socksv = 5; /* SOCKS v.5 */ | ||
136 | else | ||
137 | errx(1, "unsupported proxy protocol"); | ||
133 | break; | 138 | break; |
134 | case 'd': | 139 | case 'd': |
135 | dflag = 1; | 140 | dflag = 1; |
@@ -779,8 +784,8 @@ help(void) | |||
779 | \t-u UDP mode\n\ | 784 | \t-u UDP mode\n\ |
780 | \t-v Verbose\n\ | 785 | \t-v Verbose\n\ |
781 | \t-w secs\t Timeout for connects and final net reads\n\ | 786 | \t-w secs\t Timeout for connects and final net reads\n\ |
782 | \t-X vers\t SOCKS version (4 or 5)\n\ | 787 | \t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\ |
783 | \t-x addr[:port]\tSpecify socks proxy address and port\n\ | 788 | \t-x addr[:port]\tSpecify proxy address and port\n\ |
784 | \t-z Zero-I/O mode [used for scanning]\n\ | 789 | \t-z Zero-I/O mode [used for scanning]\n\ |
785 | Port numbers can be individual or ranges: lo-hi [inclusive]\n"); | 790 | Port numbers can be individual or ranges: lo-hi [inclusive]\n"); |
786 | exit(1); | 791 | exit(1); |
@@ -790,7 +795,7 @@ void | |||
790 | usage(int ret) | 795 | usage(int ret) |
791 | { | 796 | { |
792 | fprintf(stderr, "usage: nc [-46DdhklnrStUuvz] [-i interval] [-p source_port]\n"); | 797 | fprintf(stderr, "usage: nc [-46DdhklnrStUuvz] [-i interval] [-p source_port]\n"); |
793 | fprintf(stderr, "\t [-s source_ip_address] [-w timeout] [-X socks_version]\n"); | 798 | fprintf(stderr, "\t [-s source_ip_address] [-w timeout] [-X proxy_version]\n"); |
794 | fprintf(stderr, "\t [-x proxy_address[:port]] [hostname] [port[s]]\n"); | 799 | fprintf(stderr, "\t [-x proxy_address[:port]] [hostname] [port[s]]\n"); |
795 | if (ret) | 800 | if (ret) |
796 | exit(1); | 801 | exit(1); |