You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rp...@apache.org on 2005/10/05 09:59:43 UTC

svn commit: r295013 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_balancer.c

Author: rpluem
Date: Wed Oct  5 00:59:36 2005
New Revision: 295013

URL: http://svn.apache.org/viewcvs?rev=295013&view=rev
Log:
* Fix PR36507 (mod_proxy_balancer does not handle sticky sessions with
  tomcat correctly).

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?rev=295013&r1=295012&r2=295013&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Wed Oct  5 00:59:36 2005
@@ -2,6 +2,9 @@
 Changes with Apache 2.3.0
   [Remove entries to the current 2.0 and 2.2 section below, when backported]
 
+  *) mod_proxy_balancer: mod_proxy_balancer does not handle sticky sessions
+     with tomcat correctly. PR36507. [Ruediger Pluem]
+
   *) mod_proxy: Run the request_status hook also if there are no free workers
      or all workers are in error state.
      [Ruediger Pluem, Brian Akins <brian.akins turner.com>]

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c?rev=295013&r1=295012&r2=295013&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c Wed Oct  5 00:59:36 2005
@@ -193,7 +193,18 @@
     *route = get_path_param(r->pool, *url, balancer->sticky);
     if (!*route)
         *route = get_cookie_param(r, balancer->sticky);
-    if (*route) {
+    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
+                            "proxy: BALANCER: Found value %s for "
+                            "stickysession %s", *route, balancer->sticky);
+    /*
+     * If we found a value for sticksession, find the first '.' within.
+     * Everything after '.' (if present) is our route.
+     */
+    if ((*route) && ((*route = strchr(*route, '.')) != NULL ))
+        (*route)++;
+    if ((*route) && (**route)) {
+        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
+                                  "proxy: BALANCER: Found route %s", *route);
         /* We have a route in path or in cookie
          * Find the worker that has this route defined.
          */