Author: rjung
Date: Wed Jan 16 12:35:33 2008
New Revision: 612564

URL: http://svn.apache.org/viewvc?rev=612564&view=rev
Log:
Now since we have the service struct in all find
methods, we don't need route_is_domain any more.
Let's set the service struct directly.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c

Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=612564&r1=612563&r2=612564&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Wed Jan 16 12:35:33 
2008
@@ -743,7 +743,6 @@
 static int find_bysession_route(jk_ws_service_t *s,
                                 lb_worker_t *p,
                                 const char *name,
-                                int *route_is_domain,
                                 jk_logger_t *l)
 {
     int uses_domain  = 0;
@@ -753,10 +752,11 @@
     if (candidate < 0) {
         uses_domain = 1;
         candidate = find_best_bydomain(s, p, name, l);
-        *route_is_domain = JK_TRUE;
     }
     if (candidate >= 0) {
         lb_sub_worker_t wr = p->lb_workers[candidate];
+        if (uses_domain)
+            s->route = wr.domain;
         if (!JK_WORKER_USABLE_STICKY(&wr)) {
             /* We have a worker that is error state or stopped.
              * If it has a redirection set use that redirection worker.
@@ -768,11 +768,11 @@
                 candidate = -1;
             else if (*wr.redirect) {
                 candidate = find_by_session(s, p, wr.redirect, l);
-                *route_is_domain = JK_FALSE;
+                s->route = NULL;
             }
             else if (*wr.domain && !uses_domain) {
                 candidate = find_best_bydomain(s, p, wr.domain, l);
-                *route_is_domain = JK_TRUE;
+                s->route = wr.domain;
             }
             if (candidate >= 0) {
                 wr = p->lb_workers[candidate];
@@ -786,7 +786,6 @@
 
 static int find_failover_worker(jk_ws_service_t *s,
                                 lb_worker_t * p,
-                                int *route_is_domain,
                                 jk_logger_t *l)
 {
     int rc = -1;
@@ -800,13 +799,12 @@
         }
     }
     if (redirect)
-        rc = find_bysession_route(s, p, redirect, route_is_domain, l);
+        rc = find_bysession_route(s, p, redirect, l);
     return rc;
 }
 
 static int find_best_worker(jk_ws_service_t *s,
                             lb_worker_t * p,
-                            int *route_is_domain,
                             jk_logger_t *l)
 {
     int rc = -1;
@@ -814,14 +812,13 @@
     rc = find_best_byvalue(s, p, l);
     /* By default use worker route as session route */
     if (rc < 0)
-        rc = find_failover_worker(s, p, route_is_domain, l);
+        rc = find_failover_worker(s, p, l);
     return rc;
 }
 
 static lb_sub_worker_t *get_most_suitable_worker(jk_ws_service_t *s,
                                                  lb_worker_t * p,
                                                  char *sessionid,
-                                                 int *route_is_domain,
                                                  jk_logger_t *l)
 {
     int rc = -1;
@@ -874,7 +871,7 @@
                            session_route);
 
                 /* We have a session route. Whow! */
-                rc = find_bysession_route(s, p, session_route, 
route_is_domain, l);
+                rc = find_bysession_route(s, p, session_route, l);
                 if (rc >= 0) {
                     lb_sub_worker_t *wr = &(p->lb_workers[rc]);
                     if (p->lblock == JK_LB_LOCK_PESSIMISTIC)
@@ -907,7 +904,7 @@
             return NULL;
         }
     }
-    rc = find_best_worker(s, p, route_is_domain, l);
+    rc = find_best_worker(s, p, l);
     if (p->lblock == JK_LB_LOCK_PESSIMISTIC)
         jk_shm_unlock();
     else {
@@ -1034,9 +1031,8 @@
                p->worker->sticky_session, sessionid ? sessionid : "empty");
 
     while (attempt <= num_of_workers && recoverable == JK_TRUE) {
-        int route_is_domain = JK_FALSE;
         lb_sub_worker_t *rec =
-            get_most_suitable_worker(s, p->worker, sessionid, 
&route_is_domain, l);
+            get_most_suitable_worker(s, p->worker, sessionid, l);
         rc = JK_FALSE;
         *is_error = JK_HTTP_SERVER_BUSY;
         /* Do not reuse previous worker, because
@@ -1049,10 +1045,9 @@
             jk_endpoint_t *end = NULL;
             int retry = 0;
             int retry_wait = JK_LB_MIN_RETRY_WAIT;
-            if (route_is_domain == JK_FALSE)
+
+            if (!s->route)
                 s->route = rec->route;
-            else
-                s->route = rec->domain;
             prec = rec;
 
             if (JK_IS_DEBUG_LEVEL(l))



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to