- fixed string to address parsing
[oweals/gnunet.git] / src / include / gnunet_block_lib.h
index 66b2490c0f8f31739c32d6baad54f94eb35df5d3..adc17751dd705212377d619034659aa24c25ef86 100644 (file)
@@ -69,7 +69,7 @@ enum GNUNET_BLOCK_Type
   GNUNET_BLOCK_TYPE_FS_SBLOCK = 4,
 
     /**
-     * Type of a block that is used to advertise a namespace.  
+     * Type of a block that is used to advertise a namespace.
      */
   GNUNET_BLOCK_TYPE_FS_NBLOCK = 5,
 
@@ -90,17 +90,15 @@ enum GNUNET_BLOCK_Type
      */
   GNUNET_BLOCK_TYPE_TEST = 8,
 
-#if HAVE_MALICIOUS
     /**
-     * Block for simulating malicious peers.
+     * Block for storing .gnunet-domains
      */
-  GNUNET_BLOCK_DHT_MALICIOUS_MESSAGE_TYPE = 9,
-#endif
+  GNUNET_BLOCK_TYPE_DNS = 10,
 
     /**
-     * Block for storing .gnunet-domains
+     * Block for storing record data
      */
-  GNUNET_BLOCK_TYPE_DNS = 10
+  GNUNET_BLOCK_TYPE_GNS_NAMERECORD = 11
 };
 
 
@@ -156,7 +154,7 @@ struct GNUNET_BLOCK_Context;
 
 /**
  * Mingle hash with the mingle_number to produce different bits.
- * 
+ *
  * @param in original hash code
  * @param mingle_number number for hash permutation
  * @param hc where to store the result.
@@ -188,7 +186,7 @@ GNUNET_BLOCK_context_destroy (struct GNUNET_BLOCK_Context *ctx);
 /**
  * Function called to validate a reply or a request.  For
  * request evaluation, simply pass "NULL" for the reply_block.
- * Note that it is assumed that the reply has already been 
+ * Note that it is assumed that the reply has already been
  * matched to the key (and signatures checked) as it would
  * be done with the "get_key" function.
  *
@@ -221,7 +219,7 @@ GNUNET_BLOCK_evaluate (struct GNUNET_BLOCK_Context *ctx,
  * @param block block to get the key for
  * @param block_size number of bytes in block
  * @param key set to the key (query) for the given block
- * @return GNUNET_YES on success, 
+ * @return GNUNET_YES on success,
  *         GNUNET_NO if the block is malformed
  *         GNUNET_SYSERR if type not supported
  *         (or if extracting a key from a block of this type does not work)
@@ -232,6 +230,23 @@ GNUNET_BLOCK_get_key (struct GNUNET_BLOCK_Context *ctx,
                       size_t block_size, GNUNET_HashCode * key);
 
 
+
+/**
+ * Construct a bloom filter that would filter out the given
+ * results.
+ *
+ * @param bf_mutator mutation value to use
+ * @param seen_results results already seen
+ * @param seen_results_count number of entries in 'seen_results'
+ * @return NULL if seen_results_count is 0, otherwise a BF
+ *         that would match the given results.
+ */
+struct GNUNET_CONTAINER_BloomFilter *
+GNUNET_BLOCK_construct_bloomfilter (int32_t bf_mutator,
+                                    const GNUNET_HashCode * seen_results,
+                                    unsigned int seen_results_count);
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif