gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r25326 - gnunet/src/testbed


From: gnunet
Subject: [GNUnet-SVN] r25326 - gnunet/src/testbed
Date: Sat, 8 Dec 2012 14:23:41 +0100

Author: harsha
Date: 2012-12-08 14:23:41 +0100 (Sat, 08 Dec 2012)
New Revision: 25326

Modified:
   gnunet/src/testbed/gnunet_mpi_test.c
Log:
- exec arbitrary commands

Modified: gnunet/src/testbed/gnunet_mpi_test.c
===================================================================
--- gnunet/src/testbed/gnunet_mpi_test.c        2012-12-08 13:05:37 UTC (rev 
25325)
+++ gnunet/src/testbed/gnunet_mpi_test.c        2012-12-08 13:23:41 UTC (rev 
25326)
@@ -12,6 +12,7 @@
 {
   char *msg;
   char *filename;
+  char **argv2;
   struct GNUNET_OS_Process *proc;
   unsigned long code;
   pid_t pid;
@@ -20,8 +21,14 @@
   int rank;
   int msg_size;
   int ret;
+  unsigned int cnt;
 
   ret = GNUNET_SYSERR;
+  if (argc < 2)
+  {
+    printf ("Need arguments: gnunet-mpi-test <cmd> <cmd_args>");
+    return 1;
+  }
   if (MPI_SUCCESS != MPI_Init (&argc, &argv))
   {
     GNUNET_break (0);
@@ -55,22 +62,27 @@
     GNUNET_break (0);
     goto finalize;
   }
-
+  
   ret = GNUNET_SYSERR;
-  proc = GNUNET_OS_start_process (GNUNET_NO,
-                                  GNUNET_OS_INHERIT_STD_ALL,
-                                  NULL,
-                                  NULL,
-                                  "uptime", NULL);
+  argv2 = GNUNET_malloc (sizeof (char *) * (argc));
+  for (cnt = 1; cnt < argc; cnt++)
+    argv2[cnt - 1] = argv[cnt];
+  proc = GNUNET_OS_start_process_vap (GNUNET_NO,
+                                      GNUNET_OS_INHERIT_STD_ALL,
+                                      NULL,
+                                      NULL,
+                                      argv2[0], argv2);
   if (NULL == proc)
   {
     printf ("Cannot exec\n");
+    GNUNET_free (argv2);
     goto finalize;
   }
   do {
     (void) sleep (1);
     ret = GNUNET_OS_process_status (proc, &proc_status, &code);
   } while (GNUNET_NO == ret);
+  GNUNET_free (argv2);
   GNUNET_assert (GNUNET_NO != ret);
   if (GNUNET_OK == ret)
   {




reply via email to

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