Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37591140
en ru br
ALT Linux repositórios
S:4.0.20100725-alt3
5.0: 4.0.20061122-alt2
4.1: 4.0.20061122-alt1
4.0: 4.0.20061122-alt1
3.0: 3.6-alt2

Group :: Rede/Outros
RPM: netcat

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: netcat-4.0.20100725-jzeleny-pollhup.patch
Download


--- src/usr.bin/nc/netcat.c
+++ src/usr.bin/nc/netcat.c
@@ -798,17 +798,29 @@ readwrite(int nfd)
 					return;
 			}
 		}
+		else if (pfd[0].revents & POLLHUP) {
+			shutdown(nfd, SHUT_RD);
+			pfd[0].fd = -1;
+			pfd[0].events = 0;
+		}
 
-		if (!dflag && pfd[1].revents & POLLIN) {
-			if ((n = read(wfd, buf, plen)) < 0)
-				return;
-			else if (n == 0) {
+		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;
+				} else {
+					if (atomicio(vwrite, nfd, buf, n) != n)
+						return;
+				}
+			}
+			else if (pfd[1].revents & POLLHUP) {
 				shutdown(nfd, SHUT_WR);
 				pfd[1].fd = -1;
 				pfd[1].events = 0;
-			} else {
-				if (atomicio(vwrite, nfd, buf, n) != n)
-					return;
 			}
 		}
 	}
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009