diff options
Diffstat (limited to 'network/netcat-openbsd/patches/0004-poll-hup.patch')
-rw-r--r-- | network/netcat-openbsd/patches/0004-poll-hup.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/network/netcat-openbsd/patches/0004-poll-hup.patch b/network/netcat-openbsd/patches/0004-poll-hup.patch deleted file mode 100644 index 14923cbfa2..0000000000 --- a/network/netcat-openbsd/patches/0004-poll-hup.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: Aron Xu <aron@debian.org> -Date: Mon, 13 Feb 2012 15:08:33 +0800 -Subject: poll hup - ---- - netcat.c | 24 +++++++++++++++++------- - 1 file changed, 17 insertions(+), 7 deletions(-) - -diff --git a/netcat.c b/netcat.c -index d912544..fdaca44 100644 ---- a/netcat.c -+++ b/netcat.c -@@ -884,9 +884,7 @@ readwrite(int nfd) - if ((n = read(nfd, buf, plen)) < 0) - return; - else if (n == 0) { -- shutdown(nfd, SHUT_RD); -- pfd[0].fd = -1; -- pfd[0].events = 0; -+ goto shutdown_rd; - } else { - if (tflag) - atelnet(nfd, buf, n); -@@ -894,18 +892,30 @@ readwrite(int nfd) - return; - } - } -+ else if (pfd[0].revents & POLLHUP) { -+ shutdown_rd: -+ shutdown(nfd, SHUT_RD); -+ pfd[0].fd = -1; -+ pfd[0].events = 0; -+ } - -- if (!dflag && pfd[1].revents & POLLIN) { -+ if (!dflag) { -+ if(pfd[1].revents & POLLIN) { - if ((n = read(wfd, buf, plen)) < 0) - return; - else if (n == 0) { -- shutdown(nfd, SHUT_WR); -- pfd[1].fd = -1; -- pfd[1].events = 0; -+ goto shutdown_wr; - } else { - if (atomicio(vwrite, nfd, buf, n) != n) - return; - } -+ } -+ else if (pfd[1].revents & POLLHUP) { -+ shutdown_wr: -+ shutdown(nfd, SHUT_WR); -+ pfd[1].fd = -1; -+ pfd[1].events = 0; -+ } - } - } - } --- |