This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] Cygwin: AF_UNIX: Add fixup_after_exec method
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 12 Mar 2018 09:21:17 -0000
- Subject: [newlib-cygwin] Cygwin: AF_UNIX: Add fixup_after_exec method
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7b1028974b529b22a20566c4fdf50440abefe725
commit 7b1028974b529b22a20566c4fdf50440abefe725
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Sat Mar 10 21:09:28 2018 +0100
Cygwin: AF_UNIX: Add fixup_after_exec method
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/fhandler.h | 1 +
winsup/cygwin/fhandler_socket_unix.cc | 11 +++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 5ceedd9..2a3b366 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -900,6 +900,7 @@ class fhandler_socket_unix : public fhandler_socket
: set_peer_sun_path (NULL, 0); }
void set_cred ();
void fixup_after_fork (HANDLE parent);
+ void fixup_after_exec ();
void set_close_on_exec (bool val);
public:
diff --git a/winsup/cygwin/fhandler_socket_unix.cc b/winsup/cygwin/fhandler_socket_unix.cc
index 9ac9b24..6e7d6f1 100644
--- a/winsup/cygwin/fhandler_socket_unix.cc
+++ b/winsup/cygwin/fhandler_socket_unix.cc
@@ -982,6 +982,8 @@ fhandler_socket_unix::set_cred ()
peer_cred.gid = (gid_t) -1;
}
+/* ========================== public methods ========================= */
+
void
fhandler_socket_unix::fixup_after_fork (HANDLE parent)
{
@@ -997,6 +999,13 @@ fhandler_socket_unix::fixup_after_fork (HANDLE parent)
}
void
+fhandler_socket_unix::fixup_after_exec ()
+{
+ if (!close_on_exec ())
+ fixup_after_fork (NULL);
+}
+
+void
fhandler_socket_unix::set_close_on_exec (bool val)
{
fhandler_base::set_close_on_exec (val);
@@ -1004,8 +1013,6 @@ fhandler_socket_unix::set_close_on_exec (bool val)
set_no_inheritance (backing_file_handle, val);
}
-/* ========================== public methods ========================= */
-
fhandler_socket_unix::fhandler_socket_unix ()
{
set_cred ();