gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r9565 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r9565 - gnunet/src/util
Date: Mon, 16 Nov 2009 07:37:07 -0700

Author: grothoff
Date: 2009-11-16 07:37:07 -0700 (Mon, 16 Nov 2009)
New Revision: 9565

Modified:
   gnunet/src/util/pseudonym.c
Log:
more error handling

Modified: gnunet/src/util/pseudonym.c
===================================================================
--- gnunet/src/util/pseudonym.c 2009-11-16 14:33:38 UTC (rev 9564)
+++ gnunet/src/util/pseudonym.c 2009-11-16 14:37:07 UTC (rev 9565)
@@ -189,13 +189,13 @@
           (GNUNET_OK != GNUNET_BIO_write_meta_data(fileW, meta)) )
        {
          GNUNET_BIO_write_close(fileW);
-         GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fileW));
+         GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
          GNUNET_free (fn);
          return;
        }
       if (GNUNET_OK != GNUNET_BIO_write_close(fileW))
        {
-         GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fileW));
+         GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
          GNUNET_free (fn);
          return;
        }
@@ -217,21 +217,39 @@
 {
   char *fn;
   char *emsg;
-  int ret;
+  struct GNUNET_BIO_ReadHandle *fileR;
+
   fn = get_data_filename (cfg, PS_METADATA_DIR, nsid);
   GNUNET_assert (fn != NULL);
-  struct GNUNET_BIO_ReadHandle *fileR;
   fileR = GNUNET_BIO_read_open(fn);
-  if((NULL != fileR)&&
-     (GNUNET_OK == GNUNET_BIO_read_int32__(fileR, "Read int32 error!", 
ranking))&&
-     (GNUNET_OK == GNUNET_BIO_read_string(fileR, "Read string error!", 
ns_name, 200))&&
-     (GNUNET_OK == GNUNET_BIO_read_meta_data(fileR, "Read meta data error!", 
meta))&&
-     (GNUNET_OK == GNUNET_BIO_read_close(fileR, &emsg)))
-  ret = GNUNET_OK;
-  else
-  ret = GNUNET_SYSERR;
+  if (fileR == NULL)
+    {
+      GNUNET_free (fn);
+      return GNUNET_SYSERR;
+    }
+  if ( (GNUNET_OK != GNUNET_BIO_read_int32__(fileR, "Read int32 error!", 
ranking)) ||
+       (GNUNET_OK != GNUNET_BIO_read_string(fileR, "Read string error!", 
ns_name, 200)) ||
+       (GNUNET_OK != GNUNET_BIO_read_meta_data(fileR, "Read meta data error!", 
meta)) )
+    {
+      GNUNET_BIO_read_close(fileR, &emsg);
+      GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
+      GNUNET_free (fn);
+      return GNUNET_SYSERR;
+    }
+  emsg = NULL;
+  if (GNUNET_OK != GNUNET_BIO_read_close(fileR, &emsg))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                 _("Failed to parse metadata about pseudonym from file `%s': 
%s\n"),
+                 fn,
+                 emsg);
+      GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn));
+      GNUNET_free_non_null (emsg);
+      GNUNET_free (fn);
+      return GNUNET_SYSERR;
+    }
   GNUNET_free (fn);
-  return ret;
+  return GNUNET_OK;
 }
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]