From: Ruediger Pluem Date: Sat, 19 Apr 2008 18:48:05 +0000 (+0000) Subject: * Do not add the query string again in the case that we are using the X-Git-Tag: 2.3.0~692 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=990f2aafc493b759cf5d92f3bcd2412ccdc627f5;p=thirdparty%2Fapache%2Fhttpd.git * Do not add the query string again in the case that we are using the unparsed uri. PR: 44803 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@649840 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy_ajp.c b/modules/proxy/mod_proxy_ajp.c index 16329e2523c..698ad5e9853 100644 --- a/modules/proxy/mod_proxy_ajp.c +++ b/modules/proxy/mod_proxy_ajp.c @@ -31,7 +31,6 @@ static int proxy_ajp_canon(request_rec *r, char *url) { char *host, *path, *search, sport[7]; const char *err; - const char *pnocanon; apr_port_t port = AJP13_DEF_PORT; /* ap_port_of_scheme() */ @@ -59,27 +58,17 @@ static int proxy_ajp_canon(request_rec *r, char *url) /* * now parse path/search args, according to rfc1738 - * - * N.B. if this isn't a true proxy request, then the URL _path_ - * has already been decoded. True proxy requests have - * r->uri == r->unparsed_uri, and no others have that property. */ - pnocanon = apr_table_get(r->notes, "proxy-nocanon"); - if ((r->uri == r->unparsed_uri) || pnocanon) { - search = strchr(url, '?'); - if (search != NULL) - *(search++) = '\0'; - } - else - search = r->args; + search = NULL; /* process path */ - if (pnocanon) { + if (apr_table_get(r->notes, "proxy-nocanon")) { path = url; /* this is the raw path */ } else { path = ap_proxy_canonenc(r->pool, url, strlen(url), enc_path, 0, r->proxyreq); + search = r->args; } if (path == NULL) return HTTP_BAD_REQUEST; diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index 89d893c5715..996a2e8210b 100644 --- a/modules/proxy/mod_proxy_http.c +++ b/modules/proxy/mod_proxy_http.c @@ -36,7 +36,6 @@ static int proxy_http_canon(request_rec *r, char *url) char *host, *path, *search, sport[7]; const char *err; const char *scheme; - const char *pnocanon; apr_port_t port, def_port; /* ap_port_of_scheme() */ @@ -69,19 +68,7 @@ static int proxy_http_canon(request_rec *r, char *url) } /* now parse path/search args, according to rfc1738 */ - /* N.B. if this isn't a true proxy request, then the URL _path_ - * has already been decoded. True proxy requests have r->uri - * == r->unparsed_uri, and no others have that property. - */ - pnocanon = apr_table_get(r->notes, "proxy-nocanon"); - if ((r->uri == r->unparsed_uri) || - ((r->proxyreq == PROXYREQ_REVERSE) && pnocanon)) { - search = strchr(url, '?'); - if (search != NULL) - *(search++) = '\0'; - } - else - search = r->args; + search = NULL; /* process path */ /* In a reverse proxy, our URL has been processed, so canonicalise @@ -91,12 +78,13 @@ static int proxy_http_canon(request_rec *r, char *url) switch (r->proxyreq) { default: /* wtf are we doing here? */ case PROXYREQ_REVERSE: - if (pnocanon) { + if (apr_table_get(r->notes, "proxy-nocanon")) { path = url; /* this is the raw path */ } else { path = ap_proxy_canonenc(r->pool, url, strlen(url), enc_path, 0, r->proxyreq); + search = r->args; } break; case PROXYREQ_PROXY: