-lots
[oweals/gnunet.git] / src / fs / gnunet-auto-share.c
index ec90ae2d55979d261f4183b05837a35dd5b40066..886e0ba694c07ab4d9fb8f89b5c3134c7263b7f3 100644 (file)
@@ -283,6 +283,14 @@ save_state ()
   n = GNUNET_CONTAINER_multihashmap_size (work_finished);
   fn = get_state_file ();
   wh = GNUNET_BIO_write_open (fn);
+  if (NULL == wh)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+               _("Failed to save state to file %s\n"),
+               fn);
+    GNUNET_free (fn);
+    return;
+  }
   if (GNUNET_OK !=
       GNUNET_BIO_write_int32 (wh, n))
   {
@@ -480,7 +488,7 @@ work (void *cls,
              _("Publishing `%s'\n"),
              wi->filename);
   publish_proc = GNUNET_OS_start_process_vap (GNUNET_YES,
-                                             NULL, NULL,
+                                              0, NULL, NULL,
                                              "gnunet-publish",
                                              argv);
   if (NULL == publish_proc)
@@ -571,8 +579,10 @@ add_file (void *cls,
 
   if (GNUNET_YES == do_shutdown)
     return GNUNET_SYSERR;
-  if (NULL != strstr (filename,
-                     DIR_SEPARATOR_STR ".auto-share"))
+  if ( (NULL != strstr (filename,
+                     "/.auto-share")) ||
+       (NULL != strstr (filename,
+                       "\\.auto-share")) )
     return GNUNET_OK; /* skip internal file */
   GNUNET_CRYPTO_hash (filename,
                      strlen (filename),
@@ -680,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);