@@ -127,10 +127,14 @@ static int init_balancer_members(proxy_server_conf *conf, server_rec *s,
127127 * Something like 'JSESSIONID=12345...N'
128128 */
129129static char * get_path_param (apr_pool_t * pool , char * url ,
130- const char * name )
130+ const char * name , int scolon_sep )
131131{
132132 char * path = NULL ;
133+ char * pathdelims = "?&" ;
133134
135+ if (scolon_sep ) {
136+ pathdelims = ";?&" ;
137+ }
134138 for (path = strstr (url , name ); path ; path = strstr (path + 1 , name )) {
135139 path += strlen (name );
136140 if (* path == '=' ) {
@@ -140,7 +144,7 @@ static char *get_path_param(apr_pool_t *pool, char *url,
140144 ++ path ;
141145 if (strlen (path )) {
142146 char * q ;
143- path = apr_strtok (apr_pstrdup (pool , path ), "?&" , & q );
147+ path = apr_strtok (apr_pstrdup (pool , path ), pathdelims , & q );
144148 return path ;
145149 }
146150 }
@@ -268,7 +272,7 @@ static proxy_worker *find_session_route(proxy_balancer *balancer,
268272
269273 /* Try to find the sticky route inside url */
270274 * sticky_used = sticky_path ;
271- * route = get_path_param (r -> pool , * url , sticky_path );
275+ * route = get_path_param (r -> pool , * url , sticky_path , balancer -> scolonsep );
272276 if (!* route ) {
273277 * route = get_cookie_param (r , sticky );
274278 * sticky_used = sticky ;
0 commit comments