diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-05-28 19:44:37 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-05-28 19:44:37 +0000 |
commit | bb3b3490822574a6d1a3a2b0445b65bc57f3d72a (patch) | |
tree | 69c65b0193f9bed005926a72d0838abeb823c14e /src/transport/plugin_transport_tcp.c | |
parent | f105a48ab7fd40c4285ca202340d4991ea316eef (diff) | |
download | gnunet-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.c | 23 |
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); |