summaryrefslogtreecommitdiff
path: root/network/netcat-openbsd/patches/0005-send-crlf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'network/netcat-openbsd/patches/0005-send-crlf.patch')
-rw-r--r--network/netcat-openbsd/patches/0005-send-crlf.patch108
1 files changed, 108 insertions, 0 deletions
diff --git a/network/netcat-openbsd/patches/0005-send-crlf.patch b/network/netcat-openbsd/patches/0005-send-crlf.patch
new file mode 100644
index 0000000000..1a5fc6eeb8
--- /dev/null
+++ b/network/netcat-openbsd/patches/0005-send-crlf.patch
@@ -0,0 +1,108 @@
+From: Aron Xu <aron@debian.org>
+Date: Mon, 13 Feb 2012 14:57:45 +0800
+Subject: send crlf
+
+---
+ nc.1 | 6 ++++--
+ netcat.c | 21 +++++++++++++++++----
+ 2 files changed, 21 insertions(+), 6 deletions(-)
+
+diff --git a/nc.1 b/nc.1
+index b7014a2..af44976 100644
+--- a/nc.1
++++ b/nc.1
+@@ -34,7 +34,7 @@
+ .Sh SYNOPSIS
+ .Nm nc
+ .Bk -words
+-.Op Fl 46DdhklnrStUuvz
++.Op Fl 46CDdhklnrStUuvz
+ .Op Fl I Ar length
+ .Op Fl i Ar interval
+ .Op Fl O Ar length
+@@ -98,6 +98,8 @@ to use IPv4 addresses only.
+ Forces
+ .Nm
+ to use IPv6 addresses only.
++.It Fl C
++Send CRLF as line-ending.
+ .It Fl D
+ Enable debugging on the socket.
+ .It Fl d
+@@ -355,7 +357,7 @@ More complicated examples can be built up when the user knows the format
+ of requests required by the server.
+ As another example, an email may be submitted to an SMTP server using:
+ .Bd -literal -offset indent
+-$ nc localhost 25 \*(Lt\*(Lt EOF
++$ nc [\-C] localhost 25 \*(Lt\*(Lt EOF
+ HELO host.example.com
+ MAIL FROM:\*(Ltuser@host.example.com\*(Gt
+ RCPT TO:\*(Ltuser2@host.example.com\*(Gt
+diff --git a/netcat.c b/netcat.c
+index fdaca44..4f4d2bf 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -111,6 +111,7 @@
+ #define CONNECTION_TIMEOUT 2
+
+ /* Command Line Options */
++int Cflag = 0; /* CRLF line-ending */
+ int dflag; /* detached, no stdin */
+ unsigned int iflag; /* Interval Flag */
+ int jflag; /* use jumbo frames if we can */
+@@ -180,7 +181,7 @@ main(int argc, char *argv[])
+ sv = NULL;
+
+ while ((ch = getopt(argc, argv,
+- "46DdhI:i:jklnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) {
++ "46CDdhI:i:jklnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) {
+ switch (ch) {
+ case '4':
+ family = AF_INET;
+@@ -309,6 +310,9 @@ main(int argc, char *argv[])
+ if (Tflag < 0 || Tflag > 255 || errstr || errno)
+ errx(1, "illegal tos value %s", optarg);
+ break;
++ case 'C':
++ Cflag = 1;
++ break;
+ default:
+ usage(1);
+ }
+@@ -906,8 +910,16 @@ readwrite(int nfd)
+ else if (n == 0) {
+ goto shutdown_wr;
+ } else {
+- if (atomicio(vwrite, nfd, buf, n) != n)
+- return;
++ if ((Cflag) && (buf[n-1]=='\n')) {
++ if (atomicio(vwrite, nfd, buf, n-1) != (n-1))
++ return;
++ if (atomicio(vwrite, nfd, "\r\n", 2) != 2)
++ return;
++ }
++ else {
++ if (atomicio(vwrite, nfd, buf, n) != n)
++ return;
++ }
+ }
+ }
+ else if (pfd[1].revents & POLLHUP) {
+@@ -1139,6 +1151,7 @@ help(void)
+ fprintf(stderr, "\tCommand Summary:\n\
+ \t-4 Use IPv4\n\
+ \t-6 Use IPv6\n\
++ \t-C Send CRLF as line-ending\n\
+ \t-D Enable the debug socket option\n\
+ \t-d Detach from stdin\n\
+ \t-h This help text\n\
+@@ -1172,7 +1185,7 @@ void
+ usage(int ret)
+ {
+ fprintf(stderr,
+- "usage: nc [-46DdhjklnrStUuvz] [-I length] [-i interval] [-O length]\n"
++ "usage: nc [-46CDdhjklnrStUuvz] [-I length] [-i interval] [-O length]\n"
+ "\t [-P proxy_username] [-p source_port] [-s source] [-T toskeyword]\n"
+ "\t [-V rtable] [-w timeout] [-X proxy_protocol]\n"
+ "\t [-x proxy_address[:port]] [destination] [port]\n");
+--