From d4aa572c8d959facaa23f73c4fda2acc707e8a19 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Wed, 30 May 2007 13:23:48 +0000 Subject: [PATCH] do listen() just after bind() to exit early --- src/core/ngx_connection.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c index 2f1fbea3a..362a70edc 100644 --- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -325,6 +325,20 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle) continue; } + if (listen(s, ls[i].backlog) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, + "listen() to %V, backlog %d failed", + &ls[i].addr_text, ls[i].backlog); + + if (ngx_close_socket(s) == -1) { + ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, + ngx_close_socket_n " %V failed", + &ls[i].addr_text); + } + + return NGX_ERROR; + } + ls[i].listen = 1; ls[i].fd = s;