-add adv port
[oweals/gnunet.git] / src / util / gnunet-uri.c
index 68e7fa04bf4a8081f19bcf1d32632060863f2716..5ca1f4efc6bc8017de4d104f9fe8a4942d46da8f 100644 (file)
@@ -62,7 +62,7 @@ maint_child_death (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
        (0 == code) )
     ret = 0;
   else
-    GNUNET_OS_process_kill (p, SIGTERM);
+    GNUNET_break (0 == GNUNET_OS_process_kill (p, SIGTERM));
   GNUNET_OS_process_destroy (p);
 }
 
@@ -110,18 +110,21 @@ run (void *cls, char *const *args, const char *cfgfile,
                                             &program))
   {
     fprintf (stderr, _("No handler known for subsystem `%s'\n"), subsystem);
+    GNUNET_free (subsystem);
     return;
   }
+  GNUNET_free (subsystem);
   rt = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
                                       GNUNET_DISK_pipe_handle (sigpipe,
                                                                GNUNET_DISK_PIPE_END_READ),
                                       &maint_child_death, NULL);   
-  p = GNUNET_OS_start_process (GNUNET_NO,
+  p = GNUNET_OS_start_process (GNUNET_NO, 0,
                               NULL, NULL,
                               program,
                               program,
                               args[0], 
                               NULL);
+  GNUNET_free (program);
   if (NULL == p)
     GNUNET_SCHEDULER_cancel (rt);
 }
@@ -159,6 +162,7 @@ main (int argc, char *const *argv)
     GNUNET_GETOPT_OPTION_END
   };
   struct GNUNET_SIGNAL_Context *shc_chld;
+  int ret;
 
   if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
     return 2;
@@ -166,16 +170,15 @@ main (int argc, char *const *argv)
   GNUNET_assert (sigpipe != NULL);
   shc_chld =
     GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death);
-  if (GNUNET_OK !=
-      GNUNET_PROGRAM_run (argc, argv, "gnunet-uri URI",
-                         gettext_noop ("Perform default-actions for GNUnet URIs"),
-                         options, &run, NULL)) 
-    return 1;
+  ret = GNUNET_PROGRAM_run (argc, argv, "gnunet-uri URI",
+                           gettext_noop ("Perform default-actions for GNUnet URIs"),
+                           options, &run, NULL);
   GNUNET_SIGNAL_handler_uninstall (shc_chld);
   shc_chld = NULL;
   GNUNET_DISK_pipe_close (sigpipe);
   sigpipe = NULL; 
-  return ret;
+  GNUNET_free ((void *) argv);
+  return (GNUNET_OK == ret) ? 0 : 1;
 }
 
 /* end of gnunet-uri.c */