From 21b9c02baf32bc038184aa540563d58632e0ae89 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 9 Jan 2005 14:40:40 +0000 Subject: [PATCH] Check get_sock_opt error too. --- apps/silcd/server.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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); -- 2.43.0