X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdht%2Fgnunet-service-dht_routing.c;h=be3105c8eef71c71d5b355a3d176363a861ee8e5;hb=016f9c0b2e61c6dab0057a3b4618db5624badf51;hp=796991b5b85740ec48ef1b0fab4ecd2980909cd2;hpb=e59aabf0eb8ce56d3414254ab9c7b6cc90dd05c3;p=oweals%2Fgnunet.git diff --git a/src/dht/gnunet-service-dht_routing.c b/src/dht/gnunet-service-dht_routing.c index 796991b5b..be3105c8e 100644 --- a/src/dht/gnunet-service-dht_routing.c +++ b/src/dht/gnunet-service-dht_routing.c @@ -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); }