Index: bonobo-activation/bonobo-activation-fork-server.c
===================================================================
RCS file: /cvs/gnome/libbonobo/bonobo-activation/bonobo-activation-fork-server.c,v
retrieving revision 1.31
diff -u -p -r1.31 bonobo-activation-fork-server.c
--- bonobo-activation/bonobo-activation-fork-server.c 14 Jun 2006 14:21:29 -0000 1.31
+++ bonobo-activation/bonobo-activation-fork-server.c 28 Jul 2006 22:43:53 -0000
@@ -276,6 +276,18 @@ bonobo_activation_server_fork_init (gboo
}
}
+static void
+child_setup (gpointer user_data)
+{
+#ifndef G_OS_WIN32
+ int pipe_fd = GPOINTER_TO_INT (user_data);
+
+ /* unset close on exec */
+ fcntl (pipe_fd, F_SETFD, 0);
+#endif
+}
+
+
CORBA_Object
bonobo_activation_server_by_forking (
const char **cmd_const,
@@ -402,10 +414,12 @@ bonobo_activation_server_by_forking (
/* Spawn */
if (!g_spawn_async (NULL, (gchar **) cmd, newenv,
+#ifdef G_OS_WIN32
G_SPAWN_LEAVE_DESCRIPTORS_OPEN |
+#endif
G_SPAWN_SEARCH_PATH |
G_SPAWN_CHILD_INHERITS_STDIN,
- NULL, NULL,
+ child_setup, GINT_TO_POINTER (iopipes[1]),
NULL,
&error)) {
Bonobo_GeneralError *errval;