[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22213 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22213 - gnunet/src/transport |
Date: |
Fri, 22 Jun 2012 19:14:25 +0200 |
Author: grothoff
Date: 2012-06-22 19:14:25 +0200 (Fri, 22 Jun 2012)
New Revision: 22213
Modified:
gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
-LRN: Mark session as completely disconnected later.
free_neighbour() calls plugin's disconnect() routine, which will invoke
environment session free callback, which will do NOTHING if session is
in "completely disconnected" state (in just "disconnected" state it
will free primary address).
Destroy address in free_address() to make ATS forget the session.
Fixes #2446
Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c 2012-06-22
15:10:45 UTC (rev 22212)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c 2012-06-22
17:14:25 UTC (rev 22213)
@@ -768,6 +768,14 @@
GNUNET_ATS_address_in_use (GST_ats, na->address, na->session, GNUNET_NO);
GNUNET_ATS_address_destroyed (GST_ats, na->address, na->session);
}
+ else
+ {
+ if (NULL != na->address)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "HACK: destroy address\n");
+ GNUNET_ATS_address_destroyed (GST_ats, na->address, na->session);
+ }
+ }
na->ats_active = GNUNET_NO;
if (NULL != na->address)
{
@@ -2497,8 +2505,8 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Cleaning up connection to `%s' after sending DISCONNECT\n",
GNUNET_i2s (&n->id));
+ free_neighbour (n, GNUNET_NO);
n->state = S_DISCONNECT_FINISHED;
- free_neighbour (n, GNUNET_NO);
return;
case S_DISCONNECT_FINISHED:
/* how did we get here!? */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22213 - gnunet/src/transport,
gnunet <=