aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ats/gnunet-service-ats-solver_proportional.c23
-rw-r--r--src/ats/gnunet-service-ats_addresses.c25
2 files changed, 17 insertions, 31 deletions
diff --git a/src/ats/gnunet-service-ats-solver_proportional.c b/src/ats/gnunet-service-ats-solver_proportional.c
index d85483dde..31c4ca5e0 100644
--- a/src/ats/gnunet-service-ats-solver_proportional.c
+++ b/src/ats/gnunet-service-ats-solver_proportional.c
@@ -910,11 +910,12 @@ GAS_proportional_get_preferred_address (void *solver,
910 GNUNET_assert(peer != NULL); 910 GNUNET_assert(peer != NULL);
911 911
912 /* Add to list of pending requests */ 912 /* Add to list of pending requests */
913 if (GNUNET_NO 913 if (GNUNET_NO == GNUNET_CONTAINER_multihashmap_contains (s->requests,
914 == GNUNET_CONTAINER_multihashmap_contains (s->requests,
915 &peer->hashPubKey)) 914 &peer->hashPubKey))
916 GNUNET_CONTAINER_multihashmap_put (s->requests, &peer->hashPubKey, NULL, 915 {
917 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); 916 GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (s->requests, &peer->hashPubKey, NULL,
917 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
918 }
918 919
919 /* Get address with: stick to current address, lower distance, lower latency */ 920 /* Get address with: stick to current address, lower distance, lower latency */
920 fba_ctx.s = s; 921 fba_ctx.s = s;
@@ -1347,15 +1348,11 @@ GAS_proportional_address_add (void *solver, struct ATS_Address *address,
1347 addresse_increment (s, net, GNUNET_YES, GNUNET_NO); 1348 addresse_increment (s, net, GNUNET_YES, GNUNET_NO);
1348 aw->addr->solver_information = net; 1349 aw->addr->solver_information = net;
1349 1350
1350 if ((GNUNET_YES 1351 if (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains (s->requests, &address->peer.hashPubKey))
1351 == GNUNET_CONTAINER_multihashmap_contains (s->requests, 1352 {
1352 &address->peer.hashPubKey)) 1353 if (NULL == get_active_address (s, (struct GNUNET_CONTAINER_MultiHashMap *) s->addresses, &address->peer))
1353 && (NULL 1354 GAS_proportional_get_preferred_address (s, &address->peer);
1354 == get_active_address (s, 1355 }
1355 (struct GNUNET_CONTAINER_MultiHashMap *) s->addresses,
1356 &address->peer)))
1357 GAS_proportional_get_preferred_address (s, &address->peer);
1358
1359 LOG(GNUNET_ERROR_TYPE_DEBUG, 1356 LOG(GNUNET_ERROR_TYPE_DEBUG,
1360 "After adding address now total %u and active %u addresses in network `%s'\n", 1357 "After adding address now total %u and active %u addresses in network `%s'\n",
1361 net->total_addresses, net->active_addresses, net->desc); 1358 net->total_addresses, net->active_addresses, net->desc);
diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c
index 50a72d80d..300febf09 100644
--- a/src/ats/gnunet-service-ats_addresses.c
+++ b/src/ats/gnunet-service-ats_addresses.c
@@ -787,7 +787,10 @@ GAS_addresses_add (struct GAS_Addresses_Handle *handle,
787 { 787 {
788 /* Add a new address */ 788 /* Add a new address */
789 GNUNET_assert( 789 GNUNET_assert(
790 GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (handle->addresses, &peer->hashPubKey, new_address, GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); 790 GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (handle->addresses,
791 &peer->hashPubKey,
792 new_address,
793 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
791 794
792 GNUNET_STATISTICS_set (handle->stat, "# addresses", 795 GNUNET_STATISTICS_set (handle->stat, "# addresses",
793 GNUNET_CONTAINER_multihashmap_size (handle->addresses), GNUNET_NO); 796 GNUNET_CONTAINER_multihashmap_size (handle->addresses), GNUNET_NO);
@@ -1231,23 +1234,6 @@ GAS_addresses_request_address_cancel (struct GAS_Addresses_Handle *handle,
1231 GNUNET_free(cur); 1234 GNUNET_free(cur);
1232} 1235}
1233 1236
1234/*
1235 static int
1236 addrinfo_it (void *cls, const struct GNUNET_HashCode *key, void *value)
1237 {
1238 static int count = 0;
1239 struct GNUNET_PeerIdentity *id = cls;
1240 struct ATS_Address *aa = value;
1241
1242 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1243 "[%u] Peer `%s' %s length %u session %u active %s\n",
1244 count, GNUNET_i2s (id), aa->plugin, aa->addr_len, aa->session_id,
1245 (GNUNET_YES == aa->active) ? "active" : "inactive");
1246
1247 count ++;
1248 return GNUNET_OK;
1249 }
1250 */
1251 1237
1252/** 1238/**
1253 * Request address suggestions for a peer 1239 * Request address suggestions for a peer
@@ -1277,6 +1263,9 @@ GAS_addresses_request_address (struct GAS_Addresses_Handle *handle,
1277 { 1263 {
1278 cur = GNUNET_malloc (sizeof (struct GAS_Addresses_Suggestion_Requests)); 1264 cur = GNUNET_malloc (sizeof (struct GAS_Addresses_Suggestion_Requests));
1279 cur->id = (*peer); 1265 cur->id = (*peer);
1266 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
1267 "Adding new address suggestion request for `%s'\n",
1268 GNUNET_i2s (peer));
1280 GNUNET_CONTAINER_DLL_insert(handle->r_head, handle->r_tail, cur); 1269 GNUNET_CONTAINER_DLL_insert(handle->r_head, handle->r_tail, cur);
1281 } 1270 }
1282 1271