diff src/http/ngx_http.c @ 464:c8cfb6c462ef NGINX_0_7_44

nginx 0.7.44 *) Feature: the ngx_http_proxy_module preliminary cache support. *) Feature: the --with-pcre option in the configure. *) Feature: the "try_files" directive is now allowed on the server block level. *) Bugfix: the "try_files" directive handled incorrectly a query string in a fallback parameter. *) Bugfix: the "try_files" directive might test incorrectly directories. *) Bugfix: if there is the single server for given address:port pair, then captures in regular expressions in a "server_name" directive did not work.
author Igor Sysoev <http://sysoev.ru>
date Mon, 23 Mar 2009 00:00:00 +0300
parents bb941a2996a6
children f2c6a7373274
line wrap: on
line diff
--- a/src/http/ngx_http.c
+++ b/src/http/ngx_http.c
@@ -1395,7 +1395,12 @@ ngx_http_optimize_servers(ngx_conf_t *cf
             name = addr[a].names.elts;
             for (s = 0; s < addr[a].names.nelts; s++) {
 
-                if (addr[a].core_srv_conf == name[s].core_srv_conf) {
+                if (addr[a].core_srv_conf == name[s].core_srv_conf
+#if (NGX_PCRE)
+                    && name[s].captures == 0
+#endif
+                    )
+                {
                     continue;
                 }
 
@@ -1805,8 +1810,12 @@ ngx_http_add_addrs(ngx_conf_t *cf, ngx_h
         if (addr[i].hash.buckets == NULL
             && (addr[i].wc_head == NULL
                 || addr[i].wc_head->hash.buckets == NULL)
-            && (addr[i].wc_head == NULL
-                || addr[i].wc_head->hash.buckets == NULL))
+            && (addr[i].wc_tail == NULL
+                || addr[i].wc_tail->hash.buckets == NULL)
+#if (NGX_PCRE)
+            && addr[i].nregex == 0
+#endif
+            )
         {
             continue;
         }