mirror of
https://github.com/apache/httpd.git
synced 2025-08-15 23:27:39 +00:00
* 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
This commit is contained in:
@ -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;
|
||||
|
@ -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:
|
||||
|
Reference in New Issue
Block a user