diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c index 242d0b78ca..bf52c3f6f3 100644 --- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -489,11 +489,14 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle) } #if (NGX_HAVE_MPTCP) - s = ngx_socket(ls[i].sockaddr->sa_family, ls[i].type, + s = (ngx_socket_t) -1; + if (ls[i].protocol > 0) + s = ngx_socket(ls[i].sockaddr->sa_family, ls[i].type, ls[i].protocol); -#else - s = ngx_socket(ls[i].sockaddr->sa_family, ls[i].type, 0); + if (s == (ngx_socket_t) -1) #endif + s = ngx_socket(ls[i].sockaddr->sa_family, ls[i].type, 0); + if (s == (ngx_socket_t) -1) { ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, ngx_socket_n " %V failed", &ls[i].addr_text);