mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-31 03:20:28 +08:00
* fhandler.h (fhandler_socket::fixup_after_fork): Revert patch from
2002-06-04. * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Ditto. (fhandler_socket::dup): Ditto. * net.cc (fdsock): Make sockets explicitely noninheritable on NT.
This commit is contained in:
parent
43c3c4e37c
commit
3d78e129b7
@ -1,3 +1,11 @@
|
|||||||
|
2002-06-10 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler.h (fhandler_socket::fixup_after_fork): Revert patch from
|
||||||
|
2002-06-04.
|
||||||
|
* fhandler_socket.cc (fhandler_socket::fixup_after_fork): Ditto.
|
||||||
|
(fhandler_socket::dup): Ditto.
|
||||||
|
* net.cc (fdsock): Make sockets explicitely noninheritable on NT.
|
||||||
|
|
||||||
2002-06-09 Christopher Faylor <cgf@redhat.com>
|
2002-06-09 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Correctly
|
* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Correctly
|
||||||
|
@ -368,8 +368,6 @@ class fhandler_socket: public fhandler_base
|
|||||||
struct _WSAPROTOCOL_INFOA *prot_info_ptr;
|
struct _WSAPROTOCOL_INFOA *prot_info_ptr;
|
||||||
char *sun_path;
|
char *sun_path;
|
||||||
|
|
||||||
void fixup_after_fork (bool, HANDLE);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
fhandler_socket ();
|
fhandler_socket ();
|
||||||
~fhandler_socket ();
|
~fhandler_socket ();
|
||||||
|
@ -183,7 +183,7 @@ fhandler_socket::fixup_before_fork_exec (DWORD win_proc_id)
|
|||||||
|
|
||||||
extern "C" void __stdcall load_wsock32 ();
|
extern "C" void __stdcall load_wsock32 ();
|
||||||
void
|
void
|
||||||
fhandler_socket::fixup_after_fork (bool dup, HANDLE parent)
|
fhandler_socket::fixup_after_fork (HANDLE parent)
|
||||||
{
|
{
|
||||||
SOCKET new_sock;
|
SOCKET new_sock;
|
||||||
|
|
||||||
@ -207,10 +207,6 @@ fhandler_socket::fixup_after_fork (bool dup, 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_io_handle ());
|
||||||
#if 1
|
|
||||||
if (!dup && new_sock != (SOCKET) get_socket ())
|
|
||||||
closesocket (get_socket ());
|
|
||||||
#endif
|
|
||||||
set_io_handle ((HANDLE) new_sock);
|
set_io_handle ((HANDLE) new_sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,18 +214,12 @@ fhandler_socket::fixup_after_fork (bool dup, HANDLE parent)
|
|||||||
fork_fixup (parent, secret_event, "secret_event");
|
fork_fixup (parent, secret_event, "secret_event");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
fhandler_socket::fixup_after_fork (HANDLE parent)
|
|
||||||
{
|
|
||||||
fixup_after_fork (false, parent);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
fhandler_socket::fixup_after_exec (HANDLE parent)
|
fhandler_socket::fixup_after_exec (HANDLE parent)
|
||||||
{
|
{
|
||||||
debug_printf ("here");
|
debug_printf ("here");
|
||||||
if (!get_close_on_exec ())
|
if (!get_close_on_exec ())
|
||||||
fixup_after_fork (false, parent);
|
fixup_after_fork (parent);
|
||||||
#if 0
|
#if 0
|
||||||
else if (!winsock2_active)
|
else if (!winsock2_active)
|
||||||
closesocket (get_socket ());
|
closesocket (get_socket ());
|
||||||
@ -247,7 +237,7 @@ fhandler_socket::dup (fhandler_base *child)
|
|||||||
fhs->fixup_before_fork_exec (GetCurrentProcessId ());
|
fhs->fixup_before_fork_exec (GetCurrentProcessId ());
|
||||||
if (winsock2_active)
|
if (winsock2_active)
|
||||||
{
|
{
|
||||||
fhs->fixup_after_fork (true, hMainProc);
|
fhs->fixup_after_fork (hMainProc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return fhandler_base::dup (child);
|
return fhandler_base::dup (child);
|
||||||
|
@ -501,6 +501,12 @@ fdsock (int& fd, const char *name, SOCKET soc)
|
|||||||
{
|
{
|
||||||
if (!winsock2_active)
|
if (!winsock2_active)
|
||||||
soc = set_socket_inheritance (soc);
|
soc = set_socket_inheritance (soc);
|
||||||
|
else if (wincap.has_set_handle_information ())
|
||||||
|
{
|
||||||
|
/* NT systems apparently set sockets to inheritable by default */
|
||||||
|
SetHandleInformation ((HANDLE)soc, HANDLE_FLAG_INHERIT, 0);
|
||||||
|
debug_printf ("reset socket inheritance since winsock2_active %d", winsock2_active);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
debug_printf ("not setting socket inheritance since winsock2_active %d", winsock2_active);
|
debug_printf ("not setting socket inheritance since winsock2_active %d", winsock2_active);
|
||||||
fhandler_socket *fh = (fhandler_socket *) cygheap->fdtab.build_fhandler (fd, FH_SOCKET, name);
|
fhandler_socket *fh = (fhandler_socket *) cygheap->fdtab.build_fhandler (fd, FH_SOCKET, name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user