diff options
Diffstat (limited to 'src/block/plugin_block_dht.c')
-rw-r--r-- | src/block/plugin_block_dht.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/block/plugin_block_dht.c b/src/block/plugin_block_dht.c index c58615b72..f574e6d06 100644 --- a/src/block/plugin_block_dht.c +++ b/src/block/plugin_block_dht.c | |||
@@ -77,19 +77,21 @@ block_plugin_dht_evaluate (void *cls, enum GNUNET_BLOCK_Type type, | |||
77 | if (GNUNET_OK != GNUNET_HELLO_get_id (hello, &pid)) | 77 | if (GNUNET_OK != GNUNET_HELLO_get_id (hello, &pid)) |
78 | return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; | 78 | return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; |
79 | if (NULL != bf) | 79 | if (NULL != bf) |
80 | { | ||
81 | GNUNET_BLOCK_mingle_hash (&pid.hashPubKey, bf_mutator, &mhash); | ||
82 | if (NULL != *bf) | ||
83 | { | ||
84 | if (GNUNET_YES == GNUNET_CONTAINER_bloomfilter_test (*bf, &mhash)) | ||
85 | return GNUNET_BLOCK_EVALUATION_OK_DUPLICATE; | ||
86 | } | ||
87 | else | ||
80 | { | 88 | { |
81 | GNUNET_BLOCK_mingle_hash (&pid.hashPubKey, bf_mutator, &mhash); | 89 | *bf = |
82 | if (NULL != *bf) | 90 | GNUNET_CONTAINER_bloomfilter_init (NULL, 8, |
83 | { | 91 | GNUNET_CONSTANTS_BLOOMFILTER_K); |
84 | if (GNUNET_YES == GNUNET_CONTAINER_bloomfilter_test (*bf, &mhash)) | ||
85 | return GNUNET_BLOCK_EVALUATION_OK_DUPLICATE; | ||
86 | } | ||
87 | else | ||
88 | { | ||
89 | *bf = GNUNET_CONTAINER_bloomfilter_init (NULL, 8, GNUNET_CONSTANTS_BLOOMFILTER_K); | ||
90 | } | ||
91 | GNUNET_CONTAINER_bloomfilter_add (*bf, &mhash); | ||
92 | } | 92 | } |
93 | GNUNET_CONTAINER_bloomfilter_add (*bf, &mhash); | ||
94 | } | ||
93 | return GNUNET_BLOCK_EVALUATION_OK_MORE; | 95 | return GNUNET_BLOCK_EVALUATION_OK_MORE; |
94 | } | 96 | } |
95 | 97 | ||