giochannel-blind moved from the sandboxed child to its parent.
authorshort <>
Wed, 18 Jun 2003 09:30:48 +0000 (09:30 +0000)
committershort <>
Wed, 18 Jun 2003 09:30:48 +0000 (09:30 +0000)
 - needed for bugreporting.

src/libcaptive/client/vfs.h
src/libcaptive/sandbox/parent-Vfs.c
src/libcaptive/sandbox/split.h

index 2f5b510..094b17b 100644 (file)
@@ -39,6 +39,7 @@ struct _CaptiveVfsObject {
                Captive_Vfs corba_Vfs_object;
                Captive_GLogFunc corba_GLogFunc_object;
                Captive_CaptiveIOChannel corba_CaptiveIOChannel_object;
+               GIOChannel *corba_parent_giochanel_blind;
                int corba_parentheart_fds_1;
                pid_t corba_child_pid;
        };
index fc0fe68..a894cf3 100644 (file)
@@ -44,6 +44,7 @@ gboolean errbool;
                        &captive_vfs_object->corba_Vfs_object,  /* corba_Vfs_object_return */
                        &captive_vfs_object->corba_GLogFunc_object,     /* corba_GLogFunc_object_return */
                        &captive_vfs_object->corba_CaptiveIOChannel_object,     /* corba_CaptiveIOChannel_object_return */
+                       &captive_vfs_object->corba_parent_giochanel_blind,      /* corba_parent_giochanel_blind_ptr */
                        &captive_vfs_object->corba_parentheart_fds_1,   /* parentheart_fds_1_return */
                        &captive_vfs_object->corba_child_pid);  /* child_pid_return */
        g_return_val_if_fail(errbool==TRUE,GNOME_VFS_ERROR_GENERIC);
@@ -58,6 +59,7 @@ GnomeVFSResult r;
 int errint;
 impl_POA_Captive_GLogFunc *GLogFunc_servant;
 impl_POA_Captive_CaptiveIOChannel *CaptiveIOChannel_servant;
+GIOStatus erriostatus;
 
        g_return_val_if_fail(captive_vfs_object!=NULL,GNOME_VFS_ERROR_BAD_PARAMETERS);
 
@@ -84,6 +86,13 @@ impl_POA_Captive_CaptiveIOChannel *CaptiveIOChannel_servant;
        g_assert(validate_CORBA_Environment(&captive_corba_ev));
        impl_Captive_CaptiveIOChannel__destroy(CaptiveIOChannel_servant,&captive_corba_ev);
        g_assert(validate_CORBA_Environment(&captive_corba_ev));
+       erriostatus=g_io_channel_flush(
+                       captive_vfs_object->corba_parent_giochanel_blind,       /* channel */
+                       NULL);  /* error */
+       g_assert(erriostatus==G_IO_STATUS_NORMAL);
+#if 0
+       g_io_channel_unref(captive_vfs_object->corba_parent_giochanel_blind);
+#endif
 
        /* Close parentheart_fd_write. */
        if (captive_vfs_object->corba_parentheart_fds_1!=-1) {
index e44e52f..9198a32 100644 (file)
@@ -43,8 +43,8 @@ void sandbox_child_shutdown(void);
 #ifdef ORBIT2  /* Prevent missing $(ORBIT_CFLAGS) outside of libcaptive/sandbox/ */
 gboolean captive_sandbox_spawn(CaptiveVfsObject *child_captive_vfs_object,
                Captive_Vfs *corba_Vfs_object_return,Captive_GLogFunc *corba_GLogFunc_object_return,
-               Captive_CaptiveIOChannel *corba_CaptiveIOChannel_object_return,int *parentheart_fds_1_return,
-               pid_t *child_pid_return);
+               Captive_CaptiveIOChannel *corba_CaptiveIOChannel_object_return,GIOChannel **corba_parent_giochanel_blind_ptr,
+               int *parentheart_fds_1_return,pid_t *child_pid_return);
 gboolean validate_CORBA_Environment(CORBA_Environment *evp);
 GnomeVFSResult captive_sandbox_parent_return_from_CORBA_Environment(CORBA_Environment *evp);
 void captive_sandbox_child_GnomeVFSResultException_throw(CORBA_Environment *evp,GnomeVFSResult errvfsresult);