From ccb27970828eeda5aa1f5aa6094a9acfaf093c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sun, 10 Aug 2014 17:28:10 +0200 Subject: [PATCH] kike: proper shutdown on accept() failure --- kike.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kike.c b/kike.c index 4511dae..edd0e6d 100644 --- a/kike.c +++ b/kike.c @@ -2645,9 +2645,11 @@ on_irc_client_available (const struct pollfd *pfd, void *user_data) continue; // TODO: handle resource exhaustion (EMFILE, ENFILE) specially - // (stop accepting new connections and wait until we close some). - // FIXME: handle this better, bring the server down cleanly. - exit_fatal ("%s: %s", "accept", strerror (errno)); + // (stop accepting new connections and wait until we close some; + // also set a timer in case of ENFILE). + print_fatal ("%s: %s", "accept", strerror (errno)); + irc_initiate_quit (ctx); + break; } if (ctx->max_connections != 0 && ctx->n_clients >= ctx->max_connections)