fixes
authorChristian Grothoff <christian@grothoff.org>
Tue, 21 Dec 2010 16:12:30 +0000 (16:12 +0000)
committerChristian Grothoff <christian@grothoff.org>
Tue, 21 Dec 2010 16:12:30 +0000 (16:12 +0000)
src/peerinfo/gnunet-service-peerinfo.c
src/util/configuration.c

index 31b0199f466965a4bcd341889632b5e02e7e3753..6031c99af4d4eb783513b4e8fd8bff8360f1ac42 100644 (file)
@@ -304,7 +304,12 @@ cron_scan_directory_data_hosts (void *cls,
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   count = 0;
-  GNUNET_DISK_directory_create (networkIdDirectory);
+  if (GNUNET_SYSERR == GNUNET_DISK_directory_create (networkIdDirectory))
+    {
+      GNUNET_SCHEDULER_add_delayed (DATA_HOST_FREQ,
+                                   &cron_scan_directory_data_hosts, NULL);
+      return;
+    }
   GNUNET_DISK_directory_scan (networkIdDirectory,
                               &hosts_directory_scan_callback, &count);
   if ((0 == count) && (0 == (++retries & 31)))
@@ -355,12 +360,19 @@ bind_address (const struct GNUNET_PeerIdentity *peer,
       host->hello = mrg;
     }
   fn = get_host_filename (peer);
-  GNUNET_DISK_directory_create_for_file (fn);
-  GNUNET_DISK_fn_write (fn, 
-                       host->hello, 
-                       GNUNET_HELLO_size (host->hello),
-                       GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE
-                       | GNUNET_DISK_PERM_GROUP_READ | GNUNET_DISK_PERM_OTHER_READ);
+  if (GNUNET_OK == GNUNET_DISK_directory_create_for_file (fn))
+    {
+      if (GNUNET_OK != 
+         GNUNET_DISK_fn_write (fn, 
+                               host->hello, 
+                               GNUNET_HELLO_size (host->hello),
+                               GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE
+                               | GNUNET_DISK_PERM_GROUP_READ | GNUNET_DISK_PERM_OTHER_READ))
+       GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                                 "write",
+                                 fn);
+       
+    }
   GNUNET_free (fn);
   notify_all (host);
 }
index eb201d79b688160b33b278534741076b9fa7dcca..07d8cb9415323fa056c7e99d8c3ed714b09f4fa7 100644 (file)
@@ -306,7 +306,11 @@ GNUNET_CONFIGURATION_write (struct GNUNET_CONFIGURATION_Handle *cfg,
   fn = GNUNET_STRINGS_filename_expand (filename);
   if (fn == NULL)
     return GNUNET_SYSERR;
-  GNUNET_DISK_directory_create_for_file (fn);
+  if (GNUNET_OK != GNUNET_DISK_directory_create_for_file (fn))
+    {
+      GNUNET_free (fn);
+      return GNUNET_SYSERR;
+    }
   if (NULL == (fp = FOPEN (fn, "w")))
     {
       GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "fopen", fn);