You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2006/12/02 14:14:04 UTC
svn commit: r481556 - /tomcat/connectors/trunk/jk/native/common/jk_status.c
Author: rjung
Date: Sat Dec 2 05:14:02 2006
New Revision: 481556
URL: http://svn.apache.org/viewvc?view=rev&rev=481556
Log:
Changing return type of argument passing in status worker
to a three value type (JK_TRUE, JK_FALSE and JK_UNSET).
JK_UNSET is used to distinguish an empty parameter from
a missing one.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_status.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?view=diff&rev=481556&r1=481555&r2=481556
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sat Dec 2 05:14:02 2006
@@ -342,7 +342,7 @@
return "True";
}
-static char *status_get_arg_raw(const char *param, const char *req, char *buf, size_t len)
+static int status_get_arg_raw(const char *param, const char *req, char *buf, size_t len)
{
char ps[32];
char *p;
@@ -350,9 +350,9 @@
*buf = '\0';
if (!req)
- return NULL;
+ return JK_FALSE;
if (!param)
- return NULL;
+ return JK_FALSE;
sprintf(ps, "&%s=", param);
p = strstr(req, ps);
if (!p) {
@@ -373,23 +373,25 @@
}
buf[l] = '\0';
if (l)
- return buf;
+ return JK_TRUE;
else
- return NULL;
+ return JK_UNSET;
}
else
- return NULL;
+ return JK_FALSE;
}
-static const char *status_get_arg(const char *param, const char *req, char *buf, size_t len)
+static int status_get_arg(const char *param, const char *req, char *buf, size_t len)
{
- if (status_get_arg_raw(param, req, buf, len)) {
+ int rv;
+
+ rv = status_get_arg_raw(param, req, buf, len);
+ if (rv == JK_TRUE) {
char *off = buf;
while ((off = strpbrk(off, JK_STATUS_ESC_CHARS)))
off[0] = '@';
- return buf;
}
- return NULL;
+ return rv;
}
static int status_get_int(const char *param, const char *req, int def)
@@ -397,7 +399,7 @@
char buf[32];
int rv = def;
- if (status_get_arg_raw(param, req, buf, sizeof(buf) -1)) {
+ if (status_get_arg_raw(param, req, buf, sizeof(buf)) == JK_TRUE) {
rv = atoi(buf);
}
return rv;
@@ -408,7 +410,7 @@
char buf[32];
int rv = def;
- if (status_get_arg_raw(param, req, buf, sizeof(buf))) {
+ if (status_get_arg_raw(param, req, buf, sizeof(buf)) == JK_TRUE) {
if (strcasecmp(buf, "on") == 0 ||
strcasecmp(buf, "true") == 0 ||
strcasecmp(buf, "1") == 0)
@@ -549,16 +551,16 @@
*refresh = 0;
if (!s->query_string)
return;
- if (status_get_arg_raw(JK_STATUS_ARG_CMD, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg_raw(JK_STATUS_ARG_CMD, s->query_string, buf, sizeof(buf)) == JK_TRUE)
*cmd = status_cmd_int(buf);
- if (status_get_arg_raw(JK_STATUS_ARG_MIME, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg_raw(JK_STATUS_ARG_MIME, s->query_string, buf, sizeof(buf)) == JK_TRUE)
*mime = status_mime_int(buf);
- if (status_get_arg_raw(JK_STATUS_ARG_FROM, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg_raw(JK_STATUS_ARG_FROM, s->query_string, buf, sizeof(buf)) == JK_TRUE)
*from = status_cmd_int(buf);
*refresh = status_get_int(JK_STATUS_ARG_REFRESH, s->query_string, 0);
- if (status_get_arg(JK_STATUS_ARG_WORKER, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg(JK_STATUS_ARG_WORKER, s->query_string, buf, sizeof(buf)) == JK_TRUE)
strncpy(worker, buf, JK_SHM_STR_SIZ);
- if (status_get_arg(JK_STATUS_ARG_WORKER_MEMBER, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg(JK_STATUS_ARG_WORKER_MEMBER, s->query_string, buf, sizeof(buf)) == JK_TRUE)
strncpy(sub_worker, buf, JK_SHM_STR_SIZ);
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
@@ -1553,6 +1555,7 @@
{
char buf[128];
int rc = 0;
+ int rv;
int i;
JK_TRACE_ENTER(l);
@@ -1580,8 +1583,8 @@
/* Recalculate the load multiplicators wrt. lb_factor */
rc |= 2;
}
- if (status_get_arg(JK_STATUS_ARG_LBM_ROUTE,
- s->query_string, buf, sizeof(buf))) {
+ if ((rv = status_get_arg(JK_STATUS_ARG_LBM_ROUTE,
+ s->query_string, buf, sizeof(buf))) == JK_TRUE) {
if (strncmp(wr->s->jvm_route, buf, JK_SHM_STR_SIZ)) {
jk_log(l, JK_LOG_INFO,
"setting 'jvm_route' for sub worker '%s' of lb worker '%s' to '%s'",
@@ -1597,14 +1600,14 @@
}
}
}
- else {
+ else if (rv == JK_UNSET) {
jk_log(l, JK_LOG_INFO,
"resetting 'jvm_route' for sub worker '%s' of lb worker '%s'",
wr->s->name, worker);
memset(wr->s->jvm_route, 0, JK_SHM_STR_SIZ);
}
- if (status_get_arg(JK_STATUS_ARG_LBM_REDIRECT,
- s->query_string, buf, sizeof(buf))) {
+ if ((rv = status_get_arg(JK_STATUS_ARG_LBM_REDIRECT,
+ s->query_string, buf, sizeof(buf))) == JK_TRUE) {
if (strncmp(wr->s->redirect, buf, JK_SHM_STR_SIZ)) {
jk_log(l, JK_LOG_INFO,
"setting 'redirect' for sub worker '%s' of lb worker '%s' to '%s'",
@@ -1612,14 +1615,14 @@
strncpy(wr->s->redirect, buf, JK_SHM_STR_SIZ);
}
}
- else {
+ else if (rv == JK_UNSET) {
jk_log(l, JK_LOG_INFO,
"resetting 'redirect' for sub worker '%s' of lb worker '%s'",
wr->s->name, worker);
memset(wr->s->redirect, 0, JK_SHM_STR_SIZ);
}
- if (status_get_arg(JK_STATUS_ARG_LBM_DOMAIN,
- s->query_string, buf, sizeof(buf))) {
+ if ((rv = status_get_arg(JK_STATUS_ARG_LBM_DOMAIN,
+ s->query_string, buf, sizeof(buf))) == JK_TRUE) {
if (strncmp(wr->s->domain, buf, JK_SHM_STR_SIZ)) {
jk_log(l, JK_LOG_INFO,
"setting 'domain' for sub worker '%s' of lb worker '%s' to '%s'",
@@ -1627,7 +1630,7 @@
strncpy(wr->s->domain, buf, JK_SHM_STR_SIZ);
}
}
- else {
+ else if (rv == JK_UNSET) {
jk_log(l, JK_LOG_INFO,
"resetting 'domain' for sub worker '%s' of lb worker '%s'",
wr->s->name, worker);
@@ -1726,72 +1729,74 @@
rc = 2;
}
}
- else if (!strcmp(attribute, JK_STATUS_ARG_LBM_ROUTE)) {
- if (status_get_arg(vname, s->query_string, buf, sizeof(buf))) {
- if (strncmp(wr->s->jvm_route, buf, JK_SHM_STR_SIZ)) {
- jk_log(l, JK_LOG_INFO,
- "setting 'jvm_route' for sub worker '%s' of lb worker '%s' to '%s'",
- wr->s->name, name, buf);
- strncpy(wr->s->jvm_route, buf, JK_SHM_STR_SIZ);
- if (!wr->s->domain[0]) {
- char * id_domain = strchr(wr->s->jvm_route, '.');
- if (id_domain) {
- *id_domain = '\0';
- strcpy(wr->s->domain, wr->s->jvm_route);
- *id_domain = '.';
- }
- }
- }
- }
- else {
+ else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DISTANCE)) {
+ i = status_get_int(vname, s->query_string, wr->s->distance);
+ if (i != wr->s->distance && i > 0) {
jk_log(l, JK_LOG_INFO,
- "resetting 'jvm_route' for sub worker '%s' of lb worker '%s'",
- wr->s->name, name);
- memset(wr->s->jvm_route, 0, JK_SHM_STR_SIZ);
+ "setting 'distance' for sub worker '%s' of lb worker '%s' to '%i'",
+ wr->s->name, name, i);
+ wr->s->lb_factor = i;
}
}
- else if (!strcmp(attribute, JK_STATUS_ARG_LBM_REDIRECT)) {
- if (status_get_arg(vname, s->query_string, buf, sizeof(buf))) {
- if (strncmp(wr->s->redirect, buf, JK_SHM_STR_SIZ)) {
+ else {
+ int rv = status_get_arg(vname, s->query_string, buf, sizeof(buf));
+ if (!strcmp(attribute, JK_STATUS_ARG_LBM_ROUTE)) {
+ if (rv == JK_TRUE) {
+ if (strncmp(wr->s->jvm_route, buf, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "setting 'jvm_route' for sub worker '%s' of lb worker '%s' to '%s'",
+ wr->s->name, name, buf);
+ strncpy(wr->s->jvm_route, buf, JK_SHM_STR_SIZ);
+ if (!wr->s->domain[0]) {
+ char * id_domain = strchr(wr->s->jvm_route, '.');
+ if (id_domain) {
+ *id_domain = '\0';
+ strcpy(wr->s->domain, wr->s->jvm_route);
+ *id_domain = '.';
+ }
+ }
+ }
+ }
+ else if (rv == JK_UNSET) {
jk_log(l, JK_LOG_INFO,
- "setting 'redirect' for sub worker '%s' of lb worker '%s' to '%s'",
- wr->s->name, name, buf);
- strncpy(wr->s->redirect, buf, JK_SHM_STR_SIZ);
+ "resetting 'jvm_route' for sub worker '%s' of lb worker '%s'",
+ wr->s->name, name);
+ memset(wr->s->jvm_route, 0, JK_SHM_STR_SIZ);
}
}
- else {
- jk_log(l, JK_LOG_INFO,
- "resetting 'redirect' for sub worker '%s' of lb worker '%s'",
- wr->s->name, name);
- memset(wr->s->redirect, 0, JK_SHM_STR_SIZ);
- }
- }
- else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DOMAIN)) {
- if (status_get_arg(vname, s->query_string, buf, sizeof(buf))) {
- if (strncmp(wr->s->domain, buf, JK_SHM_STR_SIZ)) {
+ else if (!strcmp(attribute, JK_STATUS_ARG_LBM_REDIRECT)) {
+ if (rv == JK_TRUE) {
+ if (strncmp(wr->s->redirect, buf, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "setting 'redirect' for sub worker '%s' of lb worker '%s' to '%s'",
+ wr->s->name, name, buf);
+ strncpy(wr->s->redirect, buf, JK_SHM_STR_SIZ);
+ }
+ }
+ else if (rv == JK_UNSET) {
jk_log(l, JK_LOG_INFO,
- "setting 'domain' for sub worker '%s' of lb worker '%s' to '%s'",
- wr->s->name, name, buf);
- strncpy(wr->s->domain, buf, JK_SHM_STR_SIZ);
+ "resetting 'redirect' for sub worker '%s' of lb worker '%s'",
+ wr->s->name, name);
+ memset(wr->s->redirect, 0, JK_SHM_STR_SIZ);
}
}
- else {
- jk_log(l, JK_LOG_INFO,
- "resetting 'domain' for sub worker '%s' of lb worker '%s'",
- wr->s->name, name);
- memset(wr->s->domain, 0, JK_SHM_STR_SIZ);
- }
-
- }
- else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DISTANCE)) {
- i = status_get_int(vname, s->query_string, wr->s->distance);
- if (i != wr->s->distance && i > 0) {
- jk_log(l, JK_LOG_INFO,
- "setting 'distance' for sub worker '%s' of lb worker '%s' to '%i'",
- wr->s->name, name, i);
- wr->s->lb_factor = i;
+ else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DOMAIN)) {
+ if (rv == JK_TRUE) {
+ if (strncmp(wr->s->domain, buf, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "setting 'domain' for sub worker '%s' of lb worker '%s' to '%s'",
+ wr->s->name, name, buf);
+ strncpy(wr->s->domain, buf, JK_SHM_STR_SIZ);
+ }
+ }
+ else if (rv == JK_UNSET) {
+ jk_log(l, JK_LOG_INFO,
+ "resetting 'domain' for sub worker '%s' of lb worker '%s'",
+ wr->s->name, name);
+ memset(wr->s->domain, 0, JK_SHM_STR_SIZ);
+ }
+
}
-
}
}
if (rc == 1)
@@ -2091,7 +2096,8 @@
if (!sub_worker || !sub_worker[0]) {
char buf[128];
- if (status_get_arg_raw(JK_STATUS_ARG_LB_MEMBER_ATT, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg_raw(JK_STATUS_ARG_LB_MEMBER_ATT,
+ s->query_string, buf, sizeof(buf)) == JK_TRUE)
form_all_members(s, w, buf, from, refresh, l);
else
form_worker(s, w, from, refresh, l);
@@ -2160,7 +2166,8 @@
if (!sub_worker || !sub_worker[0]) {
char buf[128];
- if (status_get_arg_raw(JK_STATUS_ARG_LB_MEMBER_ATT, s->query_string, buf, sizeof(buf)))
+ if (status_get_arg_raw(JK_STATUS_ARG_LB_MEMBER_ATT,
+ s->query_string, buf, sizeof(buf)) == JK_TRUE)
commit_all_members(s, w, buf, l);
else
commit_worker(s, w, l);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org