From: Pekka Riikonen Date: Tue, 19 Nov 2002 20:33:04 +0000 (+0000) Subject: Do not wait for EOF after socket error but close connection. X-Git-Tag: silc.server.0.9.6~38 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=5f91e8385a9cb668e46659351c9d9026e57f8535 Do not wait for EOF after socket error but close connection. --- diff --git a/CHANGES b/CHANGES index 6ae3cf61..739dd96f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Tue Nov 19 22:30:56 EET 2002 Pekka Riikonen + + * Don't wait for EOF after socket error has occurred, but + close the connection. Affected file is silcd/server.c. + Mon Nov 18 18:58:26 EET 2002 Pekka Riikonen * Added support for setting FOUNDER mode on channel with 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; }