7d95763414
Split up the ubuntu patch OBS-URL: https://build.opensuse.org/request/show/197181 OBS-URL: https://build.opensuse.org/package/show/network:utilities/netcat-openbsd?expand=0&rev=12
51 lines
1.2 KiB
Diff
51 lines
1.2 KiB
Diff
Index: netcat-openbsd-1.89/netcat.c
|
|
===================================================================
|
|
--- netcat-openbsd-1.89.orig/netcat.c 2008-01-22 16:17:18.000000000 -0500
|
|
+++ netcat-openbsd-1.89/netcat.c 2008-01-22 16:17:25.000000000 -0500
|
|
@@ -618,9 +618,7 @@
|
|
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);
|
|
@@ -628,18 +626,30 @@
|
|
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;
|
|
+ }
|
|
}
|
|
}
|
|
}
|