summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_socket.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 0c09bebeb..ecf7b8af8 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+Thu Sep 20 13:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Close
+ socket only when not using Winsock2.
+
Thu Sep 20 13:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
* fhandler.h (fhandler_socket::fixup_after_exec): Remove inline
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index dc76d0e0b..dbf284ec5 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -214,9 +214,10 @@ fhandler_socket::fixup_after_fork (HANDLE parent)
void
fhandler_socket::fixup_after_exec (HANDLE parent)
{
+ extern WSADATA wsadata;
if (!get_close_on_exec ())
fixup_after_fork (parent);
- else
+ else if (wsadata.wVersion < 512) /* < Winsock 2.0 */
closesocket (get_socket ());
}