LRN: Fix automake deps to allow -j* builds again
[oweals/gnunet.git] / src / util / program.c
index 6f8467837d3a0e5ecaa7fb720b6aa31ca471bc75..b91d0f59e9cfd032c4dae4e84371e20e101d1fd3 100644 (file)
@@ -32,6 +32,7 @@
 #include "gnunet_getopt_lib.h"
 #include "gnunet_os_lib.h"
 #include "gnunet_program_lib.h"
+#include "gnunet_resolver_service.h"
 #include "gnunet_scheduler_lib.h"
 #include <gcrypt.h>
 
@@ -77,6 +78,7 @@ program_main (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct CommandContext *cc = cls;
 
+  GNUNET_RESOLVER_connect (cc->cfg);
   cc->task (cc->task_cls, cc->args, cc->cfgfile, cc->cfg);
 }
 
@@ -132,6 +134,9 @@ GNUNET_PROGRAM_run (int argc,
   char *logfile;
   int ret;
   unsigned int cnt;
+  unsigned long long skew_offset;
+  unsigned long long skew_variance;
+  long long clock_offset;
   struct GNUNET_CONFIGURATION_Handle *cfg;
   struct GNUNET_GETOPT_CommandLineOption defoptions[] = {
     GNUNET_GETOPT_OPTION_CFG_FILE (&cc.cfgfile),
@@ -142,6 +147,8 @@ GNUNET_PROGRAM_run (int argc,
   };
   struct GNUNET_GETOPT_CommandLineOption *allopts;
   const char *gargs;
+  char *lpfx;
+  char *spc;
 
   logfile = NULL;
   gargs = getenv ("GNUNET_ARGS");
@@ -204,24 +211,33 @@ GNUNET_PROGRAM_run (int argc,
          &cmd_sorter);
   loglev = GNUNET_strdup ("WARNING");
   cc.cfgfile = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
+  lpfx = GNUNET_strdup (binaryName);
+  if (NULL != (spc = strstr (lpfx, " ")))
+    *spc = '\0';
   if ((-1 == (ret = GNUNET_GETOPT_run (binaryName,
                                        allopts,
                                        (unsigned int) argc, argv))) ||
       ((GNUNET_OK !=
-        GNUNET_log_setup (binaryName,
+        GNUNET_log_setup (lpfx,
                           loglev,
                           logfile)) ||
        (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, cc.cfgfile))))
-
     {
       GNUNET_CONFIGURATION_destroy (cfg);
       GNUNET_free_non_null (cc.cfgfile);
       GNUNET_free (loglev);
       GNUNET_free (allopts);
+      GNUNET_free (lpfx);
       return GNUNET_SYSERR;
     }
   GNUNET_free (allopts);
-
+  GNUNET_free (lpfx);
+  if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cc.cfg, "testing", "skew_offset", &skew_offset) &&
+      (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cc.cfg, "testing", "skew_variance", &skew_variance)))
+    {
+      clock_offset = skew_offset - skew_variance;
+      GNUNET_TIME_set_offset(clock_offset);
+    }
   /* run */
   cc.args = &argv[ret];
   GNUNET_SCHEDULER_run (&program_main, &cc);