]> git.kaiwu.me - nginx.git/commitdiff
do listen() just after bind() to exit early
authorIgor Sysoev <igor@sysoev.ru>
Wed, 30 May 2007 13:23:48 +0000 (13:23 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 30 May 2007 13:23:48 +0000 (13:23 +0000)
src/core/ngx_connection.c

index 2f1fbea3ad6b9e8d338e2d00f6204e8c8f448f74..362a70edcb23845abedbc4a44315f7b2fa7d25a8 100644 (file)
@@ -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;