summaryrefslogtreecommitdiffstats
path: root/network/netcat-openbsd/patches/0008-dccp-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'network/netcat-openbsd/patches/0008-dccp-support.patch')
-rw-r--r--network/netcat-openbsd/patches/0008-dccp-support.patch235
1 files changed, 0 insertions, 235 deletions
diff --git a/network/netcat-openbsd/patches/0008-dccp-support.patch b/network/netcat-openbsd/patches/0008-dccp-support.patch
deleted file mode 100644
index bd37690811..0000000000
--- a/network/netcat-openbsd/patches/0008-dccp-support.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:56:51 +0800
-Subject: dccp support
-
----
- nc.1 | 4 ++
- netcat.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------
- 2 files changed, 79 insertions(+), 14 deletions(-)
-
---- a/nc.1
-+++ b/nc.1
-@@ -33,7 +33,7 @@
- .Nd arbitrary TCP and UDP connections and listens
- .Sh SYNOPSIS
- .Nm nc
--.Op Fl 46CDdFhklNnrStUuvz
-+.Op Fl 46CDdFhklNnrStUuvZz
- .Op Fl I Ar length
- .Op Fl i Ar interval
- .Op Fl M Ar ttl
-@@ -289,6 +289,8 @@ An IPv6 address can be specified unambig
- in square brackets.
- A proxy cannot be used with any of the options
- .Fl lsuU .
-+.It Fl Z
-+DCCP mode.
- .It Fl z
- Only scan for listening daemons, without sending any data to them.
- Cannot be used together with
---- a/netcat.c
-+++ b/netcat.c
-@@ -146,6 +146,7 @@ int rflag; /* Random ports flag */
- char *sflag; /* Source Address */
- int tflag; /* Telnet Emulation */
- int uflag; /* UDP - Default to TCP */
-+int dccpflag; /* DCCP - Default to TCP */
- int vflag; /* Verbosity */
- int xflag; /* Socks proxy */
- int zflag; /* Port Scan Flag */
-@@ -224,6 +225,7 @@ ssize_t drainbuf(int, unsigned char *, s
- ssize_t fillbuf(int, unsigned char *, size_t *);
- # endif
-
-+char *proto_name(int uflag, int dccpflag);
- static int connect_with_timeout(int fd, const struct sockaddr *sa,
- socklen_t salen, int ctimeout);
-
-@@ -263,7 +265,7 @@ main(int argc, char *argv[])
- # if defined(TLS)
- "46C:cDde:FH:hI:i:K:klM:m:NnO:o:P:p:q:R:rSs:T:tUuV:vW:w:X:x:Z:z"))
- # else
-- "46CDdFhI:i:klM:m:NnO:P:p:q:rSs:T:tUuV:vW:w:X:x:z"))
-+ "46CDdFhI:i:klM:m:NnO:P:p:q:rSs:T:tUuV:vW:w:X:x:Zz"))
- # endif
- != -1) {
- switch (ch) {
-@@ -380,6 +382,13 @@ main(int argc, char *argv[])
- case 'u':
- uflag = 1;
- break;
-+ case 'Z':
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ dccpflag = 1;
-+# else
-+ errx(1, "no DCCP support available");
-+# endif
-+ break;
- case 'V':
- # if defined(RT_TABLEID_MAX)
- rtableid = (int)strtonum(optarg, 0,
-@@ -484,6 +493,10 @@ main(int argc, char *argv[])
-
- /* Cruft to make sure options are clean, and used properly. */
- if (argv[0] && !argv[1] && family == AF_UNIX) {
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ if (dccpflag)
-+ errx(1, "cannot use -Z and -U");
-+# endif
- host = argv[0];
- uport = NULL;
- } else if (!argv[0] && lflag) {
-@@ -578,8 +591,20 @@ main(int argc, char *argv[])
- if (family != AF_UNIX) {
- memset(&hints, 0, sizeof(struct addrinfo));
- hints.ai_family = family;
-- hints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
-- hints.ai_protocol = uflag ? IPPROTO_UDP : IPPROTO_TCP;
-+ if (uflag) {
-+ hints.ai_socktype = SOCK_DGRAM;
-+ hints.ai_protocol = IPPROTO_UDP;
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ hints.ai_socktype = SOCK_DCCP;
-+ hints.ai_protocol = IPPROTO_DCCP;
-+ }
-+# endif
-+ else {
-+ hints.ai_socktype = SOCK_STREAM;
-+ hints.ai_protocol = IPPROTO_TCP;
-+ }
- if (nflag)
- hints.ai_flags |= AI_NUMERICHOST;
- }
-@@ -587,7 +612,10 @@ main(int argc, char *argv[])
- if (xflag) {
- if (uflag)
- errx(1, "no proxy support for UDP mode");
--
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ if (dccpflag)
-+ errx(1, "no proxy support for DCCP mode");
-+# endif
- if (lflag)
- errx(1, "no proxy support for listen");
-
-@@ -834,19 +862,20 @@ main(int argc, char *argv[])
- }
- }
-
-+ char *proto = proto_name(uflag, dccpflag);
- /* Don't look up port if -n. */
- if (nflag)
- sv = NULL;
- else {
- sv = getservbyport(
- ntohs(atoi(portlist[i])),
-- uflag ? "udp" : "tcp");
-+ proto);
- }
-
- fprintf(stderr,
- "Connection to %s %s port [%s/%s] "
- "succeeded!\n", host, portlist[i],
-- uflag ? "udp" : "tcp",
-+ proto,
- sv ? sv->s_name : "*");
- }
- if (Fflag)
-@@ -1061,6 +1090,24 @@ unix_listen(char *path)
- return s;
- }
-
-+char *proto_name(int uflag, int dccpflag) {
-+
-+ char *proto = NULL;
-+ if (uflag) {
-+ proto = "udp";
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ proto = "dccp";
-+ }
-+# endif
-+ else {
-+ proto = "tcp";
-+ }
-+
-+ return proto;
-+}
-+
- /*
- * remote_connect()
- * Returns a socket connected to a remote host. Properly binds to a local
-@@ -1091,8 +1138,21 @@ remote_connect(const char *host, const c
- # endif
- memset(&ahints, 0, sizeof(struct addrinfo));
- ahints.ai_family = res->ai_family;
-- ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
-- ahints.ai_protocol = uflag ? IPPROTO_UDP : IPPROTO_TCP;
-+ if (uflag) {
-+ ahints.ai_socktype = SOCK_DGRAM;
-+ ahints.ai_protocol = IPPROTO_UDP;
-+
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ hints.ai_socktype = SOCK_DCCP;
-+ hints.ai_protocol = IPPROTO_DCCP;
-+ }
-+# endif
-+ else {
-+ ahints.ai_socktype = SOCK_STREAM;
-+ ahints.ai_protocol = IPPROTO_TCP;
-+ }
- ahints.ai_flags = AI_PASSIVE;
- if ((error = getaddrinfo(sflag, pflag, &ahints, &ares)))
- errx(1, "getaddrinfo: %s", gai_strerror(error));
-@@ -1104,15 +1164,16 @@ remote_connect(const char *host, const c
- }
-
- set_common_sockopts(s, res->ai_family);
-+ char *proto = proto_name(uflag, dccpflag);
-
- if ((error = connect_with_timeout(s, res->ai_addr, res->ai_addrlen, timeout)) == CONNECTION_SUCCESS)
- break;
- if (vflag && error == CONNECTION_FAILED)
- warn("connect to %s port %s (%s) failed", host, port,
-- uflag ? "udp" : "tcp");
-- else if (vflag && error == CONNECTION_TIMEOUT)
-+ proto);
-+ else if (vflag && error == CONNECTION_TIMEOUT)
- warn("connect to %s port %s (%s) timed out", host, port,
-- uflag ? "udp" : "tcp");
-+ proto);
-
- save_errno = errno;
- close(s);
-@@ -1716,7 +1777,8 @@ build_ports(char *p)
- int hi, lo, cp;
- int x = 0;
-
-- sv = getservbyname(p, uflag ? "udp" : "tcp");
-+ char *proto = proto_name(uflag, dccpflag);
-+ sv = getservbyname(p, proto);
- if (sv) {
- if (asprintf(&portlist[0], "%d", ntohs(sv->s_port)) < 0)
- err(1, "asprintf");
-@@ -2096,6 +2158,7 @@ help(void)
- \t-w timeout Timeout for connects and final net reads\n\
- \t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\
- \t-x addr[:port]\tSpecify proxy address and port\n\
-+ \t-Z DCCP mode\n\
- \t-z Zero-I/O mode [used for scanning]\n\
- Port numbers can be individual or ranges: lo-hi [inclusive]\n");
- exit(0);
-@@ -2105,7 +2168,7 @@ void
- usage(int ret)
- {
- fprintf(stderr,
-- "usage: nc [-46CDdFhklNnrStUuvz] [-I length] [-i interval] [-M ttl]\n"
-+ "usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]\n"
- "\t [-m minttl] [-O length] [-P proxy_username] [-p source_port]\n"
- "\t [-q seconds] [-s source] [-T keyword] [-V rtable] [-W recvlimit] "
- "[-w timeout]\n"