gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r8498 - gnunet/src/arm


From: gnunet
Subject: [GNUnet-SVN] r8498 - gnunet/src/arm
Date: Tue, 9 Jun 2009 16:57:12 -0600

Author: grothoff
Date: 2009-06-09 16:57:12 -0600 (Tue, 09 Jun 2009)
New Revision: 8498

Modified:
   gnunet/src/arm/gnunet-service-arm.c
Log:
add possibility of passing extra options via configuration

Modified: gnunet/src/arm/gnunet-service-arm.c
===================================================================
--- gnunet/src/arm/gnunet-service-arm.c 2009-06-09 21:45:43 UTC (rev 8497)
+++ gnunet/src/arm/gnunet-service-arm.c 2009-06-09 22:57:12 UTC (rev 8498)
@@ -257,9 +257,11 @@
 start_process (struct ServiceList *sl)
 {
   char *loprefix;
+  char *options;
   char **argv;
   unsigned int argv_size;
   char *lopos;
+  char *optpos;
   const char *firstarg;
   int use_debug;
 
@@ -268,6 +270,10 @@
       GNUNET_CONFIGURATION_get_value_string (cfg,
                                              sl->name, "PREFIX", &loprefix))
     loprefix = GNUNET_strdup (prefix_command);
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_string (cfg,
+                                             sl->name, "OPTIONS", &options))
+    options = GNUNET_strdup ("");
   use_debug = GNUNET_CONFIGURATION_get_value_yesno (cfg, sl->name, "DEBUG");
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Starting service `%s'\n"), sl->name);
@@ -286,6 +292,13 @@
         argv_size++;
       lopos++;
     }
+  optpos = options;
+  while ('\0' != *optpos)
+    {
+      if (*optpos == ' ')
+        argv_size++;
+      optpos++;
+    }
   firstarg = NULL;
   argv = GNUNET_malloc (argv_size * sizeof (char *));
   argv_size = 0;
@@ -316,6 +329,21 @@
       argv[argv_size++] = "-L";
       argv[argv_size++] = "DEBUG";
     }
+  optpos = options;
+  while ('\0' != *optpos)
+    {
+      while (*optpos == ' ')
+        optpos++;
+      if (*optpos == '\0')
+        continue;
+      argv[argv_size++] = optpos;
+      while (('\0' != *optpos) && (' ' != *optpos))
+        optpos++;
+      if ('\0' == *optpos)
+        continue;
+      *optpos = '\0';
+      optpos++;
+    }
   argv[argv_size++] = NULL;
   sl->pid = GNUNET_OS_start_process_v (firstarg, argv);
   GNUNET_free (argv);





reply via email to

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