* fhandler_socket.cc (fhandler_socket::fixup_after_fork): Reset
inheritance for duplicated socket.
This commit is contained in:
parent
cfd86743ff
commit
543c43d84d
|
@ -1,3 +1,8 @@
|
||||||
|
2006-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_socket.cc (fhandler_socket::fixup_after_fork): Reset
|
||||||
|
inheritance for duplicated socket.
|
||||||
|
|
||||||
2006-01-20 Christopher Faylor <cgf@timesys.com>
|
2006-01-20 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* include/cygwin/version.h: Bump API minor number to 151.
|
* include/cygwin/version.h: Bump API minor number to 151.
|
||||||
|
|
|
@ -424,7 +424,16 @@ fhandler_socket::fixup_after_fork (HANDLE parent)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
debug_printf ("WSASocket went fine new_sock %p, old_sock %p", new_sock, get_io_handle ());
|
debug_printf ("WSASocket went fine new_sock %p, old_sock %p", new_sock, get_socket ());
|
||||||
|
|
||||||
|
/* Go figure! Even though the original socket was not inheritable,
|
||||||
|
the duplicated socket is inheritable again. This can lead to all
|
||||||
|
sorts of trouble, apparently. Note that there's no way to prevent
|
||||||
|
this on 9x, not even by trying to reset socket inheritance using
|
||||||
|
DuplicateHandle and closing the original socket. */
|
||||||
|
if (wincap.has_set_handle_information ())
|
||||||
|
SetHandleInformation ((HANDLE) new_sock, HANDLE_FLAG_INHERIT, 0);
|
||||||
|
|
||||||
set_io_handle ((HANDLE) new_sock);
|
set_io_handle ((HANDLE) new_sock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue