aboutsummaryrefslogtreecommitdiff
path: root/src/ats/gnunet-service-ats_addresses.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-11-28 14:38:15 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-11-28 14:38:15 +0000
commit31d6c6f6241432cebdd3d6c529f7bd2d4a6fb489 (patch)
tree2a508196f0a1517b8c2899cc718c26d6d28ac3c8 /src/ats/gnunet-service-ats_addresses.c
parentd06e15ae52dff5afd500d7fbb010a717b574e107 (diff)
downloadgnunet-31d6c6f6241432cebdd3d6c529f7bd2d4a6fb489.tar.gz
gnunet-31d6c6f6241432cebdd3d6c529f7bd2d4a6fb489.zip
fixing mantis #1970
bug: ats only deleted active addresses, but should delete all addresses with session removed and addrlen 0
Diffstat (limited to 'src/ats/gnunet-service-ats_addresses.c')
-rw-r--r--src/ats/gnunet-service-ats_addresses.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c
index 726d10879..626ffbf61 100644
--- a/src/ats/gnunet-service-ats_addresses.c
+++ b/src/ats/gnunet-service-ats_addresses.c
@@ -316,7 +316,7 @@ destroy_by_session_id (void *cls, const GNUNET_HashCode * key, void *value)
316 aa->addr, 316 aa->addr,
317 aa->addr_len)) ) 317 aa->addr_len)) )
318 { 318 {
319 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 319 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
320 "Deleting address for peer `%s': `%s'\n", 320 "Deleting address for peer `%s': `%s'\n",
321 GNUNET_i2s (&aa->peer), aa->plugin); 321 GNUNET_i2s (&aa->peer), aa->plugin);
322 if (GNUNET_YES == destroy_address (aa)) 322 if (GNUNET_YES == destroy_address (aa))
@@ -329,14 +329,18 @@ destroy_by_session_id (void *cls, const GNUNET_HashCode * key, void *value)
329 GNUNET_break (0 == strcmp (info->plugin, aa->plugin)); 329 GNUNET_break (0 == strcmp (info->plugin, aa->plugin));
330 /* session died */ 330 /* session died */
331 aa->session_id = 0; 331 aa->session_id = 0;
332
332 if (GNUNET_YES == aa->active) 333 if (GNUNET_YES == aa->active)
333 { 334 {
334 aa->active = GNUNET_NO; 335 aa->active = GNUNET_NO;
335 active_addr_count--; 336 active_addr_count--;
336 if (aa->addr_len == 0)
337 (void) destroy_address (aa);
338 recalculate_assigned_bw (); 337 recalculate_assigned_bw ();
339 } 338 }
339
340 /* session == 0 and addrlen == 0 : destroy address */
341 if (aa->addr_len == 0)
342 (void) destroy_address (aa);
343
340 return GNUNET_OK; 344 return GNUNET_OK;
341} 345}
342 346