gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r30052 - msh/src


From: gnunet
Subject: [GNUnet-SVN] r30052 - msh/src
Date: Wed, 9 Oct 2013 14:50:15 +0200

Author: harsha
Date: 2013-10-09 14:50:15 +0200 (Wed, 09 Oct 2013)
New Revision: 30052

Modified:
   msh/src/mshd.c
   msh/src/test_pty.c
Log:
-setup tty before duping stdin/out/err

Modified: msh/src/mshd.c
===================================================================
--- msh/src/mshd.c      2013-10-09 12:11:03 UTC (rev 30051)
+++ msh/src/mshd.c      2013-10-09 12:50:15 UTC (rev 30052)
@@ -1183,7 +1183,8 @@
     (void) unlink (hostsfile);
     GNUNET_free (hostsfile);
   }
+  LOG_DEBUG ("Finalizing\n");
+  GNUNET_break (MPI_SUCCESS == MPI_Finalize());
   LOG_DEBUG ("Returning\n");
-  GNUNET_break (MPI_SUCCESS == MPI_Finalize());
   return ret;
 }

Modified: msh/src/test_pty.c
===================================================================
--- msh/src/test_pty.c  2013-10-09 12:11:03 UTC (rev 30051)
+++ msh/src/test_pty.c  2013-10-09 12:50:15 UTC (rev 30052)
@@ -369,6 +369,7 @@
   }
   if (0 != ret)
   {
+    LOG_DEBUG ("Forked child successfully\n");
     chld_io = GNUNET_DISK_get_handle_from_int_fd (master);  
     read_child_task =
         GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, chld_io,
@@ -380,9 +381,7 @@
     int slave;
 
     close (master);
-    close (0);
-    close (1);
-    close (2);
+    LOG_DEBUG ("Opening slave PTY %s\n", fn);
     slave = open (fn, O_RDWR);
     if (-1 == slave)
     {
@@ -391,26 +390,32 @@
     }
     if (-1 == tcsetattr (slave, TCSANOW, &tio))
     {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "tcsetattr");
-      _exit (1);
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "tcsetattr");
+      //_exit (1);                /* Ignore for now */
     }
     if (-1 == ioctl (slave, TIOCSWINSZ, &ws))
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "ioctl");
       _exit (1);
     }
+    if (-1 == setsid ())
+    {
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "setsid");
+      _exit (1);
+    }
+    close (0);
+    close (1);
+    close (2);
     if ( (-1 == dup2 (slave, 0)) ||
          (-1 == dup2 (slave, 1)) ||
          (-1 == dup2 (slave, 2)) )
     {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "dup");
-      _exit (1);
+      //GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "dup"); //we won't get it
+      //at this point
+      _exit (2);
     }
-    if (-1 == setsid ())
-    {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "setsid");
-      _exit (1);
-    }
+    close (slave);
+    LOG_DEBUG ("Execing %s\n", chld_argv[0]);
     if (-1 == execvp (chld_argv[0], chld_argv))
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "execvp");




reply via email to

[Prev in Thread] Current Thread [Next in Thread]