]> git.kaiwu.me - nginx.git/commitdiff
Fixed port ranges support in the listen directive.
authorValentin Bartenev <vbart@wbsrv.ru>
Sun, 18 Dec 2022 18:29:02 +0000 (21:29 +0300)
committerValentin Bartenev <vbart@wbsrv.ru>
Sun, 18 Dec 2022 18:29:02 +0000 (21:29 +0300)
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).

src/http/ngx_http_core_module.c
src/mail/ngx_mail_core_module.c
src/stream/ngx_stream_core_module.c

index 2647e7cd03f2db701f58936b9c828c7a22b84558..6b1cb4fa4b9ea120f17c7b727cea2c1a6f8cb3b1 100644 (file)
@@ -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;
index 75a2155db439aa479d4318293e0b7b224cf99de8..487c5de8da8903b4b6caf33f0e8d505797c8db43 100644 (file)
@@ -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;
index 4be8485700df2520212ba99f277a2d7bd02fe37e..f0b79341d851bf95a8240192391d9581eb99c7c7 100644 (file)
@@ -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;