X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=f54f21695b22483cd730b100a87f200b1a479f79;hb=5f91e8385a9cb668e46659351c9d9026e57f8535;hp=c58e5a6ff025ac19b3552849afbe231cce9f9830;hpb=4350a227f2ef511037d9ee9d4adbad2d1509663d;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index c58e5a6f..f54f2169 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -2199,6 +2199,11 @@ SILC_TASK_CALLBACK(silc_server_packet_process) sock->type == SILC_SOCKET_TYPE_CLIENT ? "Client" : sock->type == SILC_SOCKET_TYPE_SERVER ? "Server" : "Router"))); + + SILC_SET_DISCONNECTING(sock); + if (sock->user_data) + silc_server_free_sock_user_data(server, sock, NULL); + silc_server_close_connection(server, sock); } return; } @@ -2209,13 +2214,19 @@ SILC_TASK_CALLBACK(silc_server_packet_process) ret = silc_packet_receive(sock); if (ret < 0) { - if (ret == -1) + if (ret == -1) { SILC_LOG_ERROR(("Error receiving packet from connection " "%s:%d [%s] %s", sock->hostname, sock->port, (sock->type == SILC_SOCKET_TYPE_UNKNOWN ? "Unknown" : sock->type == SILC_SOCKET_TYPE_CLIENT ? "Client" : sock->type == SILC_SOCKET_TYPE_SERVER ? "Server" : "Router"), strerror(errno))); + + SILC_SET_DISCONNECTING(sock); + if (sock->user_data) + silc_server_free_sock_user_data(server, sock, NULL); + silc_server_close_connection(server, sock); + } return; }