summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@wbsrv.ru>2022-12-18 21:29:02 +0300
committerValentin Bartenev <vbart@wbsrv.ru>2022-12-18 21:29:02 +0300
commit641368249c319a833a7d9c4256cd9fd1b3e29a39 (patch)
tree25c46a0634d8c35f0e039c057797e21f30c0a260
parent95133893f9821fd08619d5d2af71ea2c3345f095 (diff)
downloadnginx-641368249c319a833a7d9c4256cd9fd1b3e29a39.tar.gz
Fixed port ranges support in the listen directive.
Ports difference must be respected when checking addresses for duplicates, otherwise configurations like this are broken: listen 127.0.0.1:6000-6005 It was broken by 4cc2bfeff46c (nginx 1.23.3).
-rw-r--r--src/http/ngx_http_core_module.c2
-rw-r--r--src/mail/ngx_mail_core_module.c2
-rw-r--r--src/stream/ngx_stream_core_module.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 2647e7cd0..6b1cb4fa4 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -4292,7 +4292,7 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
for (i = 0; i < n; i++) {
if (ngx_cmp_sockaddr(u.addrs[n].sockaddr, u.addrs[n].socklen,
- u.addrs[i].sockaddr, u.addrs[i].socklen, 0)
+ u.addrs[i].sockaddr, u.addrs[i].socklen, 1)
== NGX_OK)
{
goto next;
diff --git a/src/mail/ngx_mail_core_module.c b/src/mail/ngx_mail_core_module.c
index 75a2155db..487c5de8d 100644
--- a/src/mail/ngx_mail_core_module.c
+++ b/src/mail/ngx_mail_core_module.c
@@ -572,7 +572,7 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
for (i = 0; i < n; i++) {
if (ngx_cmp_sockaddr(u.addrs[n].sockaddr, u.addrs[n].socklen,
- u.addrs[i].sockaddr, u.addrs[i].socklen, 0)
+ u.addrs[i].sockaddr, u.addrs[i].socklen, 1)
== NGX_OK)
{
goto next;
diff --git a/src/stream/ngx_stream_core_module.c b/src/stream/ngx_stream_core_module.c
index 4be848570..f0b79341d 100644
--- a/src/stream/ngx_stream_core_module.c
+++ b/src/stream/ngx_stream_core_module.c
@@ -890,7 +890,7 @@ ngx_stream_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
for (i = 0; i < n; i++) {
if (ngx_cmp_sockaddr(u.addrs[n].sockaddr, u.addrs[n].socklen,
- u.addrs[i].sockaddr, u.addrs[i].socklen, 0)
+ u.addrs[i].sockaddr, u.addrs[i].socklen, 1)
== NGX_OK)
{
goto next;