You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/09/10 19:58:38 UTC

svn commit: r1840491 - in /tomcat/jk/trunk: native/common/jk_lb_worker.c xdocs/miscellaneous/changelog.xml

Author: markt
Date: Mon Sep 10 19:58:37 2018
New Revision: 1840491

URL: http://svn.apache.org/viewvc?rev=1840491&view=rev
Log:
Make extract of session ID from path parameters more robust.

Modified:
    tomcat/jk/trunk/native/common/jk_lb_worker.c
    tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/jk/trunk/native/common/jk_lb_worker.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_lb_worker.c?rev=1840491&r1=1840490&r2=1840491&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_lb_worker.c (original)
+++ tomcat/jk/trunk/native/common/jk_lb_worker.c Mon Sep 10 19:58:37 2018
@@ -431,8 +431,7 @@ void jk_lb_push(lb_worker_t *p, int lock
 static char *get_path_param(jk_ws_service_t *s, const char *name)
 {
     char *id_start = NULL;
-    for (id_start = strstr(s->req_uri, name);
-         id_start; id_start = strstr(id_start + 1, name)) {
+    for (id_start = strstr(s->req_uri, name); id_start; id_start = strstr(id_start + 1, name)) {
         if (id_start[strlen(name)] == '=') {
             /*
              * Session path-cookie was found, get it's value
@@ -455,6 +454,12 @@ static char *get_path_param(jk_ws_servic
                 if ((id_end = strchr(id_start, ';')) != NULL) {
                     *id_end = '\0';
                 }
+                /*
+                 * Remove any trailing URI segments.
+                 */
+                if ((id_end = strchr(id_start, '/')) != NULL) {
+                    *id_end = '\0';
+                }
                 return id_start;
             }
         }
@@ -1766,7 +1771,7 @@ static int JK_METHOD validate(jk_worker_
                         jk_log(l, JK_LOG_DEBUG,
                                "Balanced worker %s already configured (sequence=%d)",
                                p->lb_workers[i].name, p->lb_workers[i].s->h.sequence);
-                    }           
+                    }
                     if (!wc_create_worker(p->lb_workers[i].name, 0,
                                           props,
                                           &(p->lb_workers[i].worker),

Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=1840491&r1=1840490&r2=1840491&view=diff
==============================================================================
--- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Mon Sep 10 19:58:37 2018
@@ -52,6 +52,15 @@
         Apache: Update the documentation to note additional limitations of the
         JkAutoAlias directive. (markt)
       </update>
+      <scode>
+        Common: Optimize path parameter handling. (rjung)
+      </scode>
+      <fix>
+        Improve path parameter parsing so that the session ID specified by the
+        <code>session_path</code> worker property for load-balanced workers can
+        be extracted from a path parameter in any segment of the URI, rather
+        than only from the final segment. (markt)
+      </fix>
     </changelog>
   </subsection>
 </section>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org