]> git.kaiwu.me - nginx.git/commitdiff
Fixed sorting of listen addresses so that wildcard address is always at
authorRuslan Ermilov <ru@nginx.com>
Tue, 17 Jul 2012 04:47:34 +0000 (04:47 +0000)
committerRuslan Ermilov <ru@nginx.com>
Tue, 17 Jul 2012 04:47:34 +0000 (04:47 +0000)
the end (closes #187).  Failure to do so could result in several listen
sockets to be created instead of only one listening on wildcard address.

Reported by Roman Odaisky.

src/http/ngx_http.c

index 3e077fb95ab9ee4288e49fa4c42d4a7b07ab12e1..f1f8a48e08f8e314a9378ff4a34394b725ddc212 100644 (file)
@@ -1613,6 +1613,11 @@ ngx_http_cmp_conf_addrs(const void *one, const void *two)
         return 1;
     }
 
+    if (second->opt.wildcard) {
+        /* a wildcard address must be the last resort, shift it to the end */
+        return -1;
+    }
+
     if (first->opt.bind && !second->opt.bind) {
         /* shift explicit bind()ed addresses to the start */
         return -1;