# HG changeset patch # User Igor Sysoev # Date 1180531428 0 # Node ID 53e3dd03514022b419b18d1e1f474463a64bbf8d # Parent 8523f4da2d69056825c6ac055a70b6957fba7108 do listen() just after bind() to exit early diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c --- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -325,6 +325,20 @@ ngx_open_listening_sockets(ngx_cycle_t * 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;