mirror of
https://github.com/apache/httpd.git
synced 2025-07-25 17:01:22 +00:00
* Temporarily add back the query string to the URL as it might contain the
routing information for sticky sessions. PR: 69443 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1925109 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
3
changes-entries/pr69443.txt
Normal file
3
changes-entries/pr69443.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*) mod_proxy_balancer: Fix a regression that caused stickysession keys no
|
||||||
|
longer be recognized if they are provided as query parameter in the URL.
|
||||||
|
PR 69443 [Ruediger Pluem]
|
@ -274,11 +274,23 @@ static proxy_worker *find_session_route(proxy_balancer *balancer,
|
|||||||
char **url)
|
char **url)
|
||||||
{
|
{
|
||||||
proxy_worker *worker = NULL;
|
proxy_worker *worker = NULL;
|
||||||
|
char *url_with_qs;
|
||||||
|
|
||||||
if (!*balancer->s->sticky)
|
if (!*balancer->s->sticky)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
/*
|
||||||
|
* The route might be contained in the query string and *url is not
|
||||||
|
* supposed to contain the query string. Hence add it temporarily if
|
||||||
|
* present.
|
||||||
|
*/
|
||||||
|
if (r->args) {
|
||||||
|
url_with_qs = apr_pstrcat(r->pool, *url, "?", r->args, NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
url_with_qs = *url;
|
||||||
|
}
|
||||||
/* Try to find the sticky route inside url */
|
/* Try to find the sticky route inside url */
|
||||||
*route = get_path_param(r->pool, *url, balancer->s->sticky_path, balancer->s->scolonsep);
|
*route = get_path_param(r->pool, url_with_qs, balancer->s->sticky_path, balancer->s->scolonsep);
|
||||||
if (*route) {
|
if (*route) {
|
||||||
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01159)
|
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01159)
|
||||||
"Found value %s for stickysession %s",
|
"Found value %s for stickysession %s",
|
||||||
|
Reference in New Issue
Block a user