summaryrefslogtreecommitdiff
path: root/src/core/ngx_connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_connection.c')
-rw-r--r--src/core/ngx_connection.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index 9afb95248..9d22ac60b 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -270,10 +270,11 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)
"setsockopt(SO_REUSEADDR) %V failed",
&ls[i].addr_text);
- if (ngx_close_socket(s) == -1)
+ 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;
}
@@ -286,10 +287,11 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)
ngx_nonblocking_n " %V failed",
&ls[i].addr_text);
- if (ngx_close_socket(s) == -1)
+ 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;
}
@@ -308,10 +310,11 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)
ngx_log_error(NGX_LOG_EMERG, log, err,
"bind() to %V failed", &ls[i].addr_text);
- if (ngx_close_socket(s) == -1)
+ 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);
+ }
if (err != NGX_EADDRINUSE) {
return NGX_ERROR;
@@ -322,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;
@@ -402,10 +419,12 @@ ngx_configure_listening_socket(ngx_cycle_t *cycle)
#endif
if (ls[i].listen) {
+
+ /* change backlog via listen() */
+
if (listen(ls[i].fd, ls[i].backlog) == -1) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_socket_errno,
- "changing the listen() backlog to %d "
- "for %V failed, ignored",
+ "listen() to %V, backlog %d failed, ignored",
&ls[i].addr_text, ls[i].backlog);
}
}