]> git.kaiwu.me - nginx.git/commitdiff
fix r1903
authorIgor Sysoev <igor@sysoev.ru>
Mon, 3 Mar 2008 20:04:06 +0000 (20:04 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 3 Mar 2008 20:04:06 +0000 (20:04 +0000)
src/http/modules/ngx_http_proxy_module.c
src/http/ngx_http_upstream.c
src/http/ngx_http_upstream.h

index d3f4c60ea808034c2b56f60912fb90549e33430e..83eeac6474064aaa14701caa3c2ed5306c47efe4 100644 (file)
@@ -611,6 +611,7 @@ ngx_http_proxy_eval(ngx_http_request_t *r, ngx_http_proxy_ctx_t *ctx,
     r->upstream->resolved->host = u.host;
     r->upstream->resolved->port = (in_port_t) (u.no_port ? u.default_port:
                                                            u.port);
+    r->upstream->resolved->default_port = u.default_port;
 
     return NGX_OK;
 }
index a46b819a415438617e99387f1abdff39dd1d27e5..2412779027c9bbd7c0daa002a6cb0dcba2c4d92a 100644 (file)
@@ -392,7 +392,8 @@ ngx_http_upstream_init(ngx_http_request_t *r)
             uscf = uscfp[i];
 
             if (uscf->host.len == host->len
-                && uscf->port == u->resolved->port
+                && ((uscf->port == 0 && u->resolved->default_port)
+                     || uscf->port == u->resolved->port)
                 && ngx_memcmp(uscf->host.data, host->data, host->len) == 0)
             {
                 goto found;
index 15615caec05af604e0ffb4efd2b0ff44a5fd3fb8..2ed2797a2e0705196d4f1406c5413825829e048b 100644 (file)
@@ -201,6 +201,7 @@ typedef struct {
 typedef struct {
     ngx_str_t                       host;
     in_port_t                       port;
+    ngx_uint_t                      default_port; /* unsigned  default_port:1 */
     ngx_uint_t                      naddrs;
     in_addr_t                      *addrs;
     ngx_resolver_ctx_t             *ctx;