[newlib-cygwin] net.cc (fdsock): Fix comment

Corinna Vinschen corinna@sourceware.org
Fri Jun 24 21:39:00 GMT 2016


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=0f5afe895fbf356d259fb6425d6a3176c4540b42

commit 0f5afe895fbf356d259fb6425d6a3176c4540b42
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Dec 15 18:12:49 2015 +0100

    net.cc (fdsock): Fix comment

Diff:
---
 winsup/cygwin/net.cc | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 7834aae..3641f96 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -534,18 +534,15 @@ fdsock (cygheap_fdmanip& fd, const device *dev, SOCKET soc)
      SetHandleInformation.  Subsequent socket calls in the child process fail
      with error 10038, WSAENOTSOCK.
 
-     The only way up to Windows Server 2003 to make these sockets usable in
-     child processes is to duplicate them via WSADuplicateSocket/WSASocket
-     calls.  This requires to start the child process in SUSPENDED state so
-     we only do this on affected systems.  If we recognize a non-inheritable
-     socket we switch to inheritance/dup via WSADuplicateSocket/WSASocket for
-     that socket.
-
-     Starting with Vista there's another neat way to workaround these annoying
-     LSP sockets.  WSAIoctl allows to fetch the underlying base socket, which
-     is a normal, inheritable IFS handle.  So we fetch the base socket,
-     duplicate it, and close the original socket.  Now we have a standard IFS
-     socket which (hopefully) works as expected. */
+     There's a neat way to workaround these annoying LSP sockets.  WSAIoctl
+     allows to fetch the underlying base socket, which is a normal, inheritable
+     IFS handle.  So we fetch the base socket, duplicate it, and close the
+     original socket.  Now we have a standard IFS socket which (hopefully)
+     works as expected.
+
+     If that doesn't work for some reason, mark the sockets for duplication
+     via WSADuplicateSocket/WSASocket.  This requires to start the child
+     process in SUSPENDED state so we only do this if really necessary. */
   DWORD flags;
   bool fixup = false;
   if (!GetHandleInformation ((HANDLE) soc, &flags)



More information about the Cygwin-cvs mailing list