aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_tcp.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-05-28 19:44:37 +0000
committerChristian Grothoff <christian@grothoff.org>2012-05-28 19:44:37 +0000
commitbb3b3490822574a6d1a3a2b0445b65bc57f3d72a (patch)
tree69c65b0193f9bed005926a72d0838abeb823c14e /src/transport/plugin_transport_tcp.c
parentf105a48ab7fd40c4285ca202340d4991ea316eef (diff)
downloadgnunet-bb3b3490822574a6d1a3a2b0445b65bc57f3d72a.tar.gz
gnunet-bb3b3490822574a6d1a3a2b0445b65bc57f3d72a.zip
-fixing #2382, also some code cleanup
Diffstat (limited to 'src/transport/plugin_transport_tcp.c')
-rw-r--r--src/transport/plugin_transport_tcp.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c
index 2c11a7e32..a527585cc 100644
--- a/src/transport/plugin_transport_tcp.c
+++ b/src/transport/plugin_transport_tcp.c
@@ -944,18 +944,18 @@ disconnect_session (struct Session *session)
944 LOG (GNUNET_ERROR_TYPE_DEBUG, 944 LOG (GNUNET_ERROR_TYPE_DEBUG,
945 "Disconnecting session of peer `%s' address `%s'\n", 945 "Disconnecting session of peer `%s' address `%s'\n",
946 GNUNET_i2s (&session->target), 946 GNUNET_i2s (&session->target),
947 tcp_address_to_string(NULL, session->addr, session->addrlen)); 947 tcp_address_to_string (NULL, session->addr, session->addrlen));
948 948
949 stop_session_timeout (session); 949 stop_session_timeout (session);
950 950
951 if (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove(plugin->sessionmap, &session->target.hashPubKey, session)) 951 if (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove (plugin->sessionmap, &session->target.hashPubKey, session))
952 { 952 {
953 GNUNET_STATISTICS_update (session->plugin->env->stats, 953 GNUNET_STATISTICS_update (session->plugin->env->stats,
954 gettext_noop ("# TCP sessions active"), -1, 954 gettext_noop ("# TCP sessions active"), -1,
955 GNUNET_NO); 955 GNUNET_NO);
956 dec_sessions (plugin, session, __LINE__); 956 dec_sessions (plugin, session, __LINE__);
957 } 957 }
958 else GNUNET_assert (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove(plugin->nat_wait_conns, &session->target.hashPubKey, session)); 958 else GNUNET_assert (GNUNET_YES == GNUNET_CONTAINER_multihashmap_remove (plugin->nat_wait_conns, &session->target.hashPubKey, session));
959 959
960 /* clean up state */ 960 /* clean up state */
961 if (session->transmit_handle != NULL) 961 if (session->transmit_handle != NULL)
@@ -966,7 +966,7 @@ disconnect_session (struct Session *session)
966 session->plugin->env->session_end (session->plugin->env->cls, 966 session->plugin->env->session_end (session->plugin->env->cls,
967 &session->target, session); 967 &session->target, session);
968 968
969 if (session->nat_connection_timeout != GNUNET_SCHEDULER_NO_TASK) 969 if (GNUNET_SCHEDULER_NO_TASK != session->nat_connection_timeout)
970 { 970 {
971 GNUNET_SCHEDULER_cancel (session->nat_connection_timeout); 971 GNUNET_SCHEDULER_cancel (session->nat_connection_timeout);
972 session->nat_connection_timeout = GNUNET_SCHEDULER_NO_TASK; 972 session->nat_connection_timeout = GNUNET_SCHEDULER_NO_TASK;
@@ -996,16 +996,15 @@ disconnect_session (struct Session *session)
996 if (session->receive_delay_task != GNUNET_SCHEDULER_NO_TASK) 996 if (session->receive_delay_task != GNUNET_SCHEDULER_NO_TASK)
997 { 997 {
998 GNUNET_SCHEDULER_cancel (session->receive_delay_task); 998 GNUNET_SCHEDULER_cancel (session->receive_delay_task);
999 if (session->client != NULL) 999 if (NULL != session->client)
1000 GNUNET_SERVER_receive_done (session->client, GNUNET_SYSERR); 1000 GNUNET_SERVER_receive_done (session->client, GNUNET_SYSERR);
1001 } 1001 }
1002 if (session->client != NULL) 1002 if (NULL != session->client)
1003 { 1003 {
1004 GNUNET_SERVER_client_disconnect (session->client);
1004 GNUNET_SERVER_client_drop (session->client); 1005 GNUNET_SERVER_client_drop (session->client);
1005 session->client = NULL; 1006 session->client = NULL;
1006 } 1007 }
1007
1008
1009 GNUNET_free_non_null (session->addr); 1008 GNUNET_free_non_null (session->addr);
1010 GNUNET_assert (NULL == session->transmit_handle); 1009 GNUNET_assert (NULL == session->transmit_handle);
1011 GNUNET_free (session); 1010 GNUNET_free (session);