# ./pullrev.sh 1926107 http://svn.apache.org/viewvc?view=revision&revision=1926107 diff --git a/modules/proxy/mod_proxy_balancer.c b/modules/proxy/mod_proxy_balancer.c index 140366e6d52..daec21ad6c3 100644 --- a/modules/proxy/mod_proxy_balancer.c +++ b/modules/proxy/mod_proxy_balancer.c @@ -276,11 +276,23 @@ static proxy_worker *find_session_route(proxy_balancer *balancer, char **url) { proxy_worker *worker = NULL; + char *url_with_qs; if (!*balancer->s->sticky) 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 */ - *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) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01159) "Found value %s for stickysession %s",