aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_connection.c16
-rw-r--r--src/core/ngx_cycle.c4
2 files changed, 20 insertions, 0 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index 29aacc035..572def263 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -210,6 +210,18 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
olen = sizeof(int);
+ if (getsockopt(ls[i].fd, SOL_SOCKET, SO_TYPE, (void *) &ls[i].type,
+ &olen)
+ == -1)
+ {
+ ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno,
+ "getsockopt(SO_TYPE) %V failed", &ls[i].addr_text);
+ ls[i].ignore = 1;
+ continue;
+ }
+
+ olen = sizeof(int);
+
if (getsockopt(ls[i].fd, SOL_SOCKET, SO_RCVBUF, (void *) &ls[i].rcvbuf,
&olen)
== -1)
@@ -274,6 +286,10 @@ ngx_set_inherited_sockets(ngx_cycle_t *cycle)
#endif
+ if (ls[i].type != SOCK_STREAM) {
+ continue;
+ }
+
#if (NGX_HAVE_TCP_FASTOPEN)
olen = sizeof(int);
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index f1032668a..5785eb5b5 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -512,6 +512,10 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
continue;
}
+ if (ls[i].type != nls[n].type) {
+ continue;
+ }
+
if (ngx_cmp_sockaddr(nls[n].sockaddr, nls[n].socklen,
ls[i].sockaddr, ls[i].socklen, 1)
== NGX_OK)