[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18345 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18345 - gnunet/src/ats |
Date: |
Mon, 28 Nov 2011 15:38:15 +0100 |
Author: wachs
Date: 2011-11-28 15:38:15 +0100 (Mon, 28 Nov 2011)
New Revision: 18345
Modified:
gnunet/src/ats/ats_api_scheduling.c
gnunet/src/ats/gnunet-service-ats_addresses.c
Log:
fixing mantis #1970
bug: ats only deleted active addresses, but should delete all addresses with
session removed and addrlen 0
Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2011-11-28 12:47:33 UTC (rev 18344)
+++ gnunet/src/ats/ats_api_scheduling.c 2011-11-28 14:38:15 UTC (rev 18345)
@@ -542,6 +542,18 @@
address.address = plugin_address;
address.address_length = plugin_address_length;
address.transport_name = plugin_name;
+
+ if ((s == NULL) && (0 == address.address_length))
+ {
+ GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
+ "ATS returned invalid address for peer `%s' transport `%s' address
length %i, session_id %i\n",
+ GNUNET_i2s(&address.peer) , address.transport_name,
plugin_address_length, session_id);
+ GNUNET_break_op (0);
+ GNUNET_CLIENT_receive (sh->client, &process_ats_message, sh,
+ GNUNET_TIME_UNIT_FOREVER_REL);
+ return;
+ }
+
sh->suggest_cb (sh->suggest_cb_cls, &address, s, m->bandwidth_out,
m->bandwidth_in, atsi, ats_count);
Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c 2011-11-28 12:47:33 UTC
(rev 18344)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c 2011-11-28 14:38:15 UTC
(rev 18345)
@@ -316,7 +316,7 @@
aa->addr,
aa->addr_len)) )
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Deleting address for peer `%s': `%s'\n",
GNUNET_i2s (&aa->peer), aa->plugin);
if (GNUNET_YES == destroy_address (aa))
@@ -329,14 +329,18 @@
GNUNET_break (0 == strcmp (info->plugin, aa->plugin));
/* session died */
aa->session_id = 0;
+
if (GNUNET_YES == aa->active)
{
aa->active = GNUNET_NO;
active_addr_count--;
- if (aa->addr_len == 0)
- (void) destroy_address (aa);
recalculate_assigned_bw ();
}
+
+ /* session == 0 and addrlen == 0 : destroy address */
+ if (aa->addr_len == 0)
+ (void) destroy_address (aa);
+
return GNUNET_OK;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18345 - gnunet/src/ats,
gnunet <=