diff src/http/modules/ngx_http_proxy_module.c @ 551:483cca230603 release-0.2.4

nginx-0.2.4-RELEASE import *) Feature: the ngx_http_ssi_module supports "$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions in the "if" command. *) Bugfix: in proxying location without trailing slash; the bug had appeared in 0.1.44. *) Bugfix: the segmentation fault may occurred if the "rtsig" method was used; the bug had appeared in 0.2.0.
author Igor Sysoev <igor@sysoev.ru>
date Mon, 03 Oct 2005 12:53:14 +0000
parents 818fbd4750b9
children 7bd37aef1e7e
line wrap: on
line diff
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -430,7 +430,7 @@ ngx_http_proxy_create_request(ngx_http_r
 
     escape = 0;
 
-    loc_len = r->valid_location ? u->conf->location->len - 1 : 0;
+    loc_len = r->valid_location ? u->conf->location->len : 0;
 
     if (plcf->upstream.pass_unparsed_uri && r->valid_unparsed_uri) {
         len += r->unparsed_uri.len;
@@ -514,12 +514,12 @@ ngx_http_proxy_create_request(ngx_http_r
                              r->method_name.len + 1);
     }
 
-    b->last = ngx_cpymem(b->last, u->conf->uri.data, u->conf->uri.len - 1);
-
     if (plcf->upstream.pass_unparsed_uri && r->valid_unparsed_uri) {
         b->last = ngx_cpymem(b->last, r->unparsed_uri.data,
                              r->unparsed_uri.len);
     } else {
+        b->last = ngx_cpymem(b->last, u->conf->uri.data, u->conf->uri.len);
+
         if (escape) {
             ngx_escape_uri(b->last, r->uri.data + loc_len,
                            r->uri.len - loc_len, NGX_ESCAPE_URI);