aboutsummaryrefslogtreecommitdiff
path: root/src/ats/gnunet-service-ats-solver_proportional.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ats/gnunet-service-ats-solver_proportional.c')
-rw-r--r--src/ats/gnunet-service-ats-solver_proportional.c23
1 files changed, 10 insertions, 13 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);