gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r15665 - in gnunet/src: datacache datastore topology util


From: gnunet
Subject: [GNUnet-SVN] r15665 - in gnunet/src: datacache datastore topology util
Date: Thu, 16 Jun 2011 15:08:48 +0200

Author: grothoff
Date: 2011-06-16 15:08:48 +0200 (Thu, 16 Jun 2011)
New Revision: 15665

Modified:
   gnunet/src/datacache/datacache.c
   gnunet/src/datastore/gnunet-service-datastore.c
   gnunet/src/topology/gnunet-daemon-topology.c
   gnunet/src/util/container_bloomfilter.c
Log:
do not allow NULL for fn

Modified: gnunet/src/datacache/datacache.c
===================================================================
--- gnunet/src/datacache/datacache.c    2011-06-16 12:58:43 UTC (rev 15664)
+++ gnunet/src/datacache/datacache.c    2011-06-16 13:08:48 UTC (rev 15665)
@@ -163,7 +163,7 @@
     }
   else
     {
-      ret->filter = GNUNET_CONTAINER_bloomfilter_load (NULL, bf_size, 5);  /* 
approx. 3% false positives at max use */  
+      ret->filter = GNUNET_CONTAINER_bloomfilter_init (NULL, bf_size, 5);  /* 
approx. 3% false positives at max use */  
     }
   ret->stats = GNUNET_STATISTICS_create ("datacache",
                                         cfg);

Modified: gnunet/src/datastore/gnunet-service-datastore.c
===================================================================
--- gnunet/src/datastore/gnunet-service-datastore.c     2011-06-16 12:58:43 UTC 
(rev 15664)
+++ gnunet/src/datastore/gnunet-service-datastore.c     2011-06-16 13:08:48 UTC 
(rev 15665)
@@ -1664,7 +1664,10 @@
       GNUNET_free_non_null (fn);
       fn = NULL;
     }
-  filter = GNUNET_CONTAINER_bloomfilter_load (fn, bf_size, 5);  /* approx. 3% 
false positives at max use */  
+  if (fn != NULL)
+    filter = GNUNET_CONTAINER_bloomfilter_load (fn, bf_size, 5);  /* approx. 
3% false positives at max use */  
+  else
+    filter = GNUNET_CONTAINER_bloomfilter_init (NULL, bf_size, 5);  /* approx. 
3% false positives at max use */  
   GNUNET_free_non_null (fn);
   if (filter == NULL)
     {

Modified: gnunet/src/topology/gnunet-daemon-topology.c
===================================================================
--- gnunet/src/topology/gnunet-daemon-topology.c        2011-06-16 12:58:43 UTC 
(rev 15664)
+++ gnunet/src/topology/gnunet-daemon-topology.c        2011-06-16 13:08:48 UTC 
(rev 15665)
@@ -511,7 +511,7 @@
      "useless" once a HELLO has been passed on to ~100
      other peers, which is likely more than enough in
      any case; hence 64, 5 as bloomfilter parameters. */
-  peer->filter = GNUNET_CONTAINER_bloomfilter_load (NULL, 64, 5);
+  peer->filter = GNUNET_CONTAINER_bloomfilter_init (NULL, 64, 5);
   peer->filter_expiration = GNUNET_TIME_relative_to_absolute 
(HELLO_ADVERTISEMENT_MIN_REPEAT_FREQUENCY);
   /* never send a peer its own HELLO */
   GNUNET_CONTAINER_bloomfilter_add (peer->filter, &peer->pid.hashPubKey);

Modified: gnunet/src/util/container_bloomfilter.c
===================================================================
--- gnunet/src/util/container_bloomfilter.c     2011-06-16 12:58:43 UTC (rev 
15664)
+++ gnunet/src/util/container_bloomfilter.c     2011-06-16 13:08:48 UTC (rev 
15665)
@@ -437,6 +437,7 @@
   int i;
   size_t ui;
 
+  GNUNET_assert (NULL != filename);
   if ((k == 0) || (size == 0))
     return NULL;
   if (size < BUFFSIZE)
@@ -448,31 +449,23 @@
 
   bf = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_BloomFilter));
   /* Try to open a bloomfilter file */
-  if (filename != NULL)
+  bf->fh = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READWRITE
+                                 | GNUNET_DISK_OPEN_CREATE,
+                                 GNUNET_DISK_PERM_USER_READ |
+                                 GNUNET_DISK_PERM_USER_WRITE);
+  if (NULL == bf->fh)
     {
-      bf->fh = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READWRITE
-                                      | GNUNET_DISK_OPEN_CREATE,
-                                      GNUNET_DISK_PERM_USER_READ |
-                                      GNUNET_DISK_PERM_USER_WRITE);
-      if (NULL == bf->fh)
-        {
-          GNUNET_free (bf);
-          return NULL;
-        }
-      bf->filename = GNUNET_strdup (filename);
+      GNUNET_free (bf);
+      return NULL;
     }
-  else
-    {
-      bf->filename = NULL;
-      bf->fh = NULL;
-    }
+  bf->filename = GNUNET_strdup (filename);
   /* Alloc block */
   bf->bitArray = GNUNET_malloc_large (size);
   if (bf->bitArray == NULL)
     {
       if (bf->fh != NULL)
        GNUNET_DISK_file_close (bf->fh);
-      GNUNET_free_non_null (bf->filename);
+      GNUNET_free (bf->filename);
       GNUNET_free (bf);
       return NULL;
     }
@@ -480,36 +473,33 @@
   bf->addressesPerElement = k;
   memset (bf->bitArray, 0, bf->bitArraySize);
 
-  if (bf->filename != NULL)
+  /* Read from the file what bits we can */
+  rbuff = GNUNET_malloc (BUFFSIZE);
+  pos = 0;
+  while (pos < size * 8)
     {
-      /* Read from the file what bits we can */
-      rbuff = GNUNET_malloc (BUFFSIZE);
-      pos = 0;
-      while (pos < size * 8)
-        {
-          int res;
-
-          res = GNUNET_DISK_file_read (bf->fh, rbuff, BUFFSIZE);
-          if (res == -1)
-            {
-              GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
-                                        "read", bf->filename);
-            }
-          if (res == 0)
-            break;              /* is ok! we just did not use that many bits 
yet */
-          for (i = 0; i < res; i++)
-            {
-              if ((rbuff[i] & 0x0F) != 0)
-                setBit (bf->bitArray, pos + i * 2);
-              if ((rbuff[i] & 0xF0) != 0)
-                setBit (bf->bitArray, pos + i * 2 + 1);
-            }
-          if (res < BUFFSIZE)
-            break;
-          pos += BUFFSIZE * 2;  /* 2 bits per byte in the buffer */
-        }
-      GNUNET_free (rbuff);
+      int res;
+      
+      res = GNUNET_DISK_file_read (bf->fh, rbuff, BUFFSIZE);
+      if (res == -1)
+       {
+         GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                                   "read", bf->filename);
+       }
+      if (res == 0)
+       break;              /* is ok! we just did not use that many bits yet */
+      for (i = 0; i < res; i++)
+       {
+         if ((rbuff[i] & 0x0F) != 0)
+           setBit (bf->bitArray, pos + i * 2);
+         if ((rbuff[i] & 0xF0) != 0)
+           setBit (bf->bitArray, pos + i * 2 + 1);
+       }
+      if (res < BUFFSIZE)
+       break;
+      pos += BUFFSIZE * 2;  /* 2 bits per byte in the buffer */
     }
+  GNUNET_free (rbuff);
   return bf;
 }
 




reply via email to

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