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]