From abb3b5c4c50e9df157d1ebd547f844407eacd256 Mon Sep 17 00:00:00 2001 From: Matthias Wachs Date: Tue, 17 May 2011 14:05:44 +0000 Subject: [PATCH] fixed: transport disconnects when inbound sessions exists --- src/transport/gnunet-service-transport.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index 201ecf602..310f1433b 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c @@ -2577,7 +2577,7 @@ plugin_env_session_end (void *cls, GNUNET_i2s(peer)); #endif //FIXME: This conflicts with inbound tcp connections and tcp nat ... debugging in progress - //disconnect_neighbour (nl, GNUNET_YES); + disconnect_neighbour (nl, GNUNET_YES); return; /* was never marked as connected */ } pos->session = NULL; @@ -4917,7 +4917,8 @@ disconnect_neighbour (struct NeighbourList *n, int check) peer_addresses = rpos->addresses; while (peer_addresses != NULL) { - if (GNUNET_YES == peer_addresses->connected) + // Do not disconnect if: an address is connected or an inbound address exists + if ((GNUNET_YES == peer_addresses->connected) || (peer_addresses->addrlen == 0)) { #if DEBUG_TRANSPORT GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, -- 2.25.1