gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r25547 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r25547 - gnunet/src/mesh
Date: Wed, 19 Dec 2012 14:02:42 +0100

Author: bartpolot
Date: 2012-12-19 14:02:42 +0100 (Wed, 19 Dec 2012)
New Revision: 25547

Modified:
   gnunet/src/mesh/plugin_block_mesh.c
Log:
-prevent looping of mesh messages in the DHT

Modified: gnunet/src/mesh/plugin_block_mesh.c
===================================================================
--- gnunet/src/mesh/plugin_block_mesh.c 2012-12-19 13:02:12 UTC (rev 25546)
+++ gnunet/src/mesh/plugin_block_mesh.c 2012-12-19 13:02:42 UTC (rev 25547)
@@ -77,6 +77,22 @@
         return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
       if (sizeof (struct PBlock) != reply_block_size)  
         return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;  
+      if (NULL != bf)
+      {
+        GNUNET_CRYPTO_hash (reply_block, reply_block_size, &chash);
+        GNUNET_BLOCK_mingle_hash (&chash, bf_mutator, &mhash);
+        if (NULL != *bf)
+        {
+          if (GNUNET_YES == GNUNET_CONTAINER_bloomfilter_test (*bf, &mhash))
+            return GNUNET_BLOCK_EVALUATION_OK_DUPLICATE;
+        }
+        else
+        {
+          *bf = GNUNET_CONTAINER_bloomfilter_init (NULL, 8, BLOOMFILTER_K);
+        }
+        GNUNET_CONTAINER_bloomfilter_add (*bf, &mhash);
+      }
+
       return GNUNET_BLOCK_EVALUATION_OK_LAST;
 
 




reply via email to

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