From: corinna Date: Fri, 22 Jun 2001 20:53:45 +0000 (+0000) Subject: * fhandler.h class fhandler_socket): Declare new method X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fd06496b124f37c376233a8c904d34b2524211f7;p=pf3gnuchains%2Fpf3gnuchains3x.git * fhandler.h class fhandler_socket): Declare new method `set_close_on_exec'. * fhandler_socket.cc (fhandler_socket::set_close_on_exec): New method. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index eae9eafb7e..8dcfe7f501 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +Fri Jun 22 16:50:00 2001 Corinna Vinschen + + * fhandler.h class fhandler_socket): Declare new method + `set_close_on_exec'. + * fhandler_socket.cc (fhandler_socket::set_close_on_exec): + New method. + Fri Jun 22 16:12:00 2001 Corinna Vinschen * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index c6224d07ca..8c34c191e0 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -383,6 +383,7 @@ public: void hclose (HANDLE) {close ();} int dup (fhandler_base *child); + void set_close_on_exec (int val); virtual void fixup_before_fork_exec (DWORD); void fixup_after_fork (HANDLE); void fixup_after_exec (HANDLE parent) { fixup_after_fork (parent); } diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index 3ec1ac69e6..974f2de68f 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -431,3 +431,12 @@ fhandler_socket::fcntl (int cmd, void *arg) return res; } +void +fhandler_socket::set_close_on_exec (int val) +{ + extern WSADATA wsadata; + if (wsadata.wVersion < 512) /* < Winsock 2.0 */ + set_inheritance (get_handle (), val); + set_close_on_exec_flag (val); + debug_printf ("set close_on_exec for %s to %d", get_name (), val); +}