From: Bart Polot Date: Mon, 28 Jul 2014 05:12:38 +0000 (+0000) Subject: - set tunnel cstate to SEARCH when 0 connections are present X-Git-Tag: initial-import-from-subversion-38251~3379 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fc34de7eef58a5cf0f7df000eabb91d713dd86e4;p=oweals%2Fgnunet.git - set tunnel cstate to SEARCH when 0 connections are present --- diff --git a/src/cadet/gnunet-service-cadet_tunnel.c b/src/cadet/gnunet-service-cadet_tunnel.c index 189c94ff8..0c797da5e 100644 --- a/src/cadet/gnunet-service-cadet_tunnel.c +++ b/src/cadet/gnunet-service-cadet_tunnel.c @@ -2371,6 +2371,7 @@ GCT_remove_connection (struct CadetTunnel *t, { struct CadetTConnection *aux; struct CadetTConnection *next; + unsigned int conns; LOG (GNUNET_ERROR_TYPE_DEBUG, "Removing connection %s from tunnel %s\n", GCC_2s (c), GCT_2s (t)); @@ -2384,14 +2385,18 @@ GCT_remove_connection (struct CadetTunnel *t, } } + conns = GCT_count_connections (t); + if (0 == conns) + GCT_change_cstate (t, CADET_TUNNEL_SEARCHING); + /* Start new connections if needed */ - if (CONNECTIONS_PER_TUNNEL > GCT_count_connections (t) + if (CONNECTIONS_PER_TUNNEL > conns && GNUNET_SCHEDULER_NO_TASK == t->destroy_task && CADET_TUNNEL_SHUTDOWN != t->cstate && GNUNET_NO == shutting_down) { LOG (GNUNET_ERROR_TYPE_DEBUG, " too few connections, getting new ones\n"); - GCP_connect (t->peer); + GCP_connect (t->peer); /* Will change cstate to WAITING when possible */ return; } @@ -2403,8 +2408,6 @@ GCT_remove_connection (struct CadetTunnel *t, for (aux = t->connection_head; aux != NULL; aux = aux->next) if (CADET_CONNECTION_READY == GCC_get_state (aux->c)) return; - - GCT_change_cstate (t, CADET_TUNNEL_WAITING); }