-again trying to delete old vectorproduct dir
[oweals/gnunet.git] / src / dht / gnunet-service-dht_routing.c
index 796991b5b85740ec48ef1b0fab4ecd2980909cd2..be3105c8eef71c71d5b355a3d176363a861ee8e5 100644 (file)
@@ -226,6 +226,12 @@ process (void *cls, const struct GNUNET_HashCode * key, void *value)
                               ("# Invalid REPLIES matched against routing table"),
                               1, GNUNET_NO);
     return GNUNET_SYSERR;
+  case GNUNET_BLOCK_EVALUATION_RESULT_IRRELEVANT:
+    GNUNET_STATISTICS_update (GDS_stats,
+                              gettext_noop
+                              ("# Irrelevant REPLIES matched against routing table"),
+                              1, GNUNET_NO);
+    return GNUNET_OK;
   case GNUNET_BLOCK_EVALUATION_REQUEST_VALID:
     GNUNET_break (0);
     return GNUNET_OK;
@@ -258,7 +264,7 @@ process (void *cls, const struct GNUNET_HashCode * key, void *value)
  * @param key key for the content
  * @param put_path_length number of entries in put_path
  * @param put_path peers the original PUT traversed (if tracked)
- * @param get_path_length number of entries in put_path
+ * @param get_path_length number of entries in get_path
  * @param get_path peers this reply has traversed so far (if tracked)
  * @param data payload of the reply
  * @param data_size number of bytes in data
@@ -289,7 +295,7 @@ GDS_ROUTING_process (enum GNUNET_BLOCK_Type type,
        reply as request-validation (but we need response-validation).
        So we set 'data' to a 0-byte non-NULL value just to be sure */
     GNUNET_break (0 == data_size);
-    data_size = 0;
+    pc.data_size = 0;
     pc.data = ""; /* something not null */
   }
   GNUNET_CONTAINER_multihashmap_get_multiple (recent_map, key, &process, &pc);
@@ -356,8 +362,7 @@ try_combine_recent (void *cls, const struct GNUNET_HashCode * key, void *value)
   else
   {
     GNUNET_CONTAINER_bloomfilter_or2 (rr->reply_bf,
-                                     in->reply_bf,
-                                     GNUNET_CONTAINER_bloomfilter_get_size (in->reply_bf));
+                                     in->reply_bf);
     GNUNET_CONTAINER_bloomfilter_free (in->reply_bf);
   }
   GNUNET_free (in);
@@ -400,6 +405,7 @@ GDS_ROUTING_add (const struct GNUNET_PeerIdentity *sender,
   recent_req->type = type;
   recent_req->options = options;
   recent_req->xquery = &recent_req[1];
+  memcpy (&recent_req[1], xquery, xquery_size);
   recent_req->xquery_size = xquery_size;
   recent_req->reply_bf_mutator = reply_bf_mutator;
   if (GNUNET_SYSERR ==
@@ -414,7 +420,7 @@ GDS_ROUTING_add (const struct GNUNET_PeerIdentity *sender,
   }
   recent_req->heap_node =
       GNUNET_CONTAINER_heap_insert (recent_heap, recent_req,
-                                    GNUNET_TIME_absolute_get ().abs_value);
+                                    GNUNET_TIME_absolute_get ().abs_value_us);
   GNUNET_CONTAINER_multihashmap_put (recent_map, key, recent_req,
                                      GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
 
@@ -429,7 +435,7 @@ void
 GDS_ROUTING_init ()
 {
   recent_heap = GNUNET_CONTAINER_heap_create (GNUNET_CONTAINER_HEAP_ORDER_MIN);
-  recent_map = GNUNET_CONTAINER_multihashmap_create (DHT_MAX_RECENT * 4 / 3);
+  recent_map = GNUNET_CONTAINER_multihashmap_create (DHT_MAX_RECENT * 4 / 3, GNUNET_NO);
 }