[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30860 - gnunet/src/dv
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30860 - gnunet/src/dv |
Date: |
Mon, 25 Nov 2013 15:29:55 +0100 |
Author: wachs
Date: 2013-11-25 15:29:54 +0100 (Mon, 25 Nov 2013)
New Revision: 30860
Modified:
gnunet/src/dv/gnunet-service-dv.c
Log:
remember direct route to be released on direct disconnect
Modified: gnunet/src/dv/gnunet-service-dv.c
===================================================================
--- gnunet/src/dv/gnunet-service-dv.c 2013-11-25 14:10:00 UTC (rev 30859)
+++ gnunet/src/dv/gnunet-service-dv.c 2013-11-25 14:29:54 UTC (rev 30860)
@@ -249,9 +249,17 @@
*/
unsigned int pm_queue_size;
+ /**
+ * Elements in consensus
+ */
unsigned int consensus_elements;
/**
+ * Direct one hop route
+ */
+ struct Route *direct_route;
+
+ /**
* Flag set within 'check_target_removed' to trigger full global route
refresh.
*/
int target_removed;
@@ -846,11 +854,11 @@
GNUNET_free (route);
}
- route = GNUNET_new (struct Route);
- route->next_hop = neighbor;
- route->target.peer= neighbor->peer;
- route->target.distance = DIRECT_NEIGHBOR_COST;
- allocate_route (route, DIRECT_NEIGHBOR_COST);
+ neighbor->direct_route = GNUNET_new (struct Route);
+ neighbor->direct_route->next_hop = neighbor;
+ neighbor->direct_route->target.peer= neighbor->peer;
+ neighbor->direct_route->target.distance = DIRECT_NEIGHBOR_COST;
+ allocate_route (neighbor->direct_route, DIRECT_NEIGHBOR_COST);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Adding direct route to %s\n",
@@ -1096,6 +1104,14 @@
GNUNET_CORE_notify_transmit_ready_cancel (neighbor->cth);
neighbor->cth = NULL;
}
+
+ if (NULL != neighbor->direct_route)
+ {
+ release_route(neighbor->direct_route);
+ GNUNET_free (neighbor->direct_route);
+ neighbor->direct_route = NULL;
+ }
+
if (NULL != neighbor->neighbor_table_consensus)
{
GNUNET_CONTAINER_multipeermap_iterate (neighbor->neighbor_table_consensus,
@@ -1709,6 +1725,7 @@
neighbor->connected = GNUNET_NO;
if (DIRECT_NEIGHBOR_COST == neighbor->distance)
{
+
GNUNET_STATISTICS_update (stats,
"# peers connected (1-hop)",
-1, GNUNET_NO);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30860 - gnunet/src/dv,
gnunet <=