diff options
| author | djm <> | 2004-10-17 03:13:55 +0000 |
|---|---|---|
| committer | djm <> | 2004-10-17 03:13:55 +0000 |
| commit | 91294475ad30114d23728b4a7599c81a0e1a99a3 (patch) | |
| tree | 1f23c7ad55ad26e1dda318b65e9a34e4e26af6f1 /src/usr.bin/nc/netcat.c | |
| parent | 8a16cf0bfbdc91bb8136c9cedf795be3e0496e8c (diff) | |
| download | openbsd-91294475ad30114d23728b4a7599c81a0e1a99a3.tar.gz openbsd-91294475ad30114d23728b4a7599c81a0e1a99a3.tar.bz2 openbsd-91294475ad30114d23728b4a7599c81a0e1a99a3.zip | |
http proxy CONNECT support; ok beck@
Diffstat (limited to '')
| -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); |
