-options to play with
[oweals/gnunet.git] / src / fs / gnunet-auto-share.c
index 1a6e74b8cf8b3a8f8fef450e7b48ca9fc6436538..86cab5593ed1c531e62e3b12ebc5d9aaa28253ae 100644 (file)
@@ -681,7 +681,7 @@ run (void *cls, char *const *args, const char *cfgfile,
 {
   /* check arguments */
   if ((args[0] == NULL) || (args[1] != NULL) ||
-      (GNUNET_YES != GNUNET_DISK_directory_test (args[0])))
+      (GNUNET_YES != GNUNET_DISK_directory_test (args[0], GNUNET_YES)))
   {
     printf (_("You must specify one and only one directory name for automatic publication.\n"));
     ret = -1;
@@ -690,7 +690,7 @@ run (void *cls, char *const *args, const char *cfgfile,
   cfg_filename = GNUNET_strdup (cfgfile);
   cfg = c;
   dir_name = args[0];
-  work_finished = GNUNET_CONTAINER_multihashmap_create (1024);
+  work_finished = GNUNET_CONTAINER_multihashmap_create (1024, GNUNET_NO);
   load_state ();
   run_task = GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_IDLE,
                                                 &scan, NULL);
@@ -721,6 +721,7 @@ free_item (void *cls,
   return GNUNET_OK;
 }
 
+
 /**
  * The main function to automatically publish content to GNUnet.
  *
@@ -768,10 +769,13 @@ main (int argc, char *const *argv)
                            gettext_noop
                            ("Automatically publish files from a directory on GNUnet"),
                            options, &run, NULL)) ? ret : 1;
-  (void) GNUNET_CONTAINER_multihashmap_iterate (work_finished,
-                                               &free_item,
-                                               NULL);
-  GNUNET_CONTAINER_multihashmap_destroy (work_finished);
+  if (NULL != work_finished)
+  {
+    (void) GNUNET_CONTAINER_multihashmap_iterate (work_finished,
+                                                 &free_item,
+                                                 NULL);
+    GNUNET_CONTAINER_multihashmap_destroy (work_finished);
+  }
   while (NULL != (wi = work_head))
   {
     GNUNET_CONTAINER_DLL_remove (work_head, work_tail, wi);
@@ -784,6 +788,7 @@ main (int argc, char *const *argv)
   sigpipe = NULL;
   GNUNET_free (cfg_filename);
   cfg_filename = NULL;
+  GNUNET_free ((void*) argv);
   return ok;
 }