From: Pekka Riikonen Date: Sun, 9 Jan 2005 14:40:40 +0000 (+0000) Subject: Check get_sock_opt error too. X-Git-Tag: silc.server.0.9.19~45 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=21b9c02baf32bc038184aa540563d58632e0ae89;p=silc.git Check get_sock_opt error too. --- diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 7c98f105..05302a7f 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -976,13 +976,14 @@ SILC_TASK_CALLBACK(silc_server_connection_established) SilcServer server = app_context; SilcServerConnection sconn = (SilcServerConnection)context; int sock = fd; - int opt = EINVAL, optlen = sizeof(opt); - + int opt = EINVAL, optlen = sizeof(opt), ret; + + ret = silc_net_get_socket_opt(sock, SOL_SOCKET, SO_ERROR, &opt, &optlen); + silc_schedule_task_del_by_fd(server->schedule, sock); silc_schedule_unset_listen_fd(server->schedule, sock); - - silc_net_get_socket_opt(sock, SOL_SOCKET, SO_ERROR, &opt, &optlen); - if (opt != 0) { + + if (ret != 0 || opt != 0) { SILC_LOG_ERROR(("Could not connect to router %s:%d: %s", sconn->remote_host, sconn->remote_port, strerror(opt))); silc_net_close_connection(sock);