mturk 2004/08/09 08:10:02
Modified: ajp/proxy mod_proxy.c
Log:
Add pool to functions for setting worker and balancer parameters.
Still have no idea why that doesn't work without duping as JeanFrederic reported.
Revision Changes Path
1.31 +18 -7 jakarta-tomcat-connectors/ajp/proxy/mod_proxy.c
Index: mod_proxy.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/ajp/proxy/mod_proxy.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- mod_proxy.c 9 Aug 2004 08:04:55 -0000 1.30
+++ mod_proxy.c 9 Aug 2004 15:10:02 -0000 1.31
@@ -82,7 +82,8 @@
(w)->io_buffer_size_set = (c)->io_buffer_size_set; \
} while (0)
-static const char *set_worker_param(proxy_worker *worker,
+static const char *set_worker_param(apr_pool_t *p,
+ proxy_worker *worker,
const char *key,
const char *val)
{
@@ -160,20 +161,27 @@
return "KeepAlive must be On|Off";
worker->keepalive_set = 1;
}
+ else if (!strcasecmp(key, "route")) {
+ worker->route = apr_pstrdup(p, val);
+ }
+ else if (!strcasecmp(key, "redirect")) {
+ worker->redirect = apr_pstrdup(p, val);
+ }
else {
return "unknown parameter";
}
return NULL;
}
-static const char *set_balancer_param(proxy_balancer *balancer,
+static const char *set_balancer_param(apr_pool_t *p,
+ proxy_balancer *balancer,
const char *key,
const char *val)
{
int ival;
if (!strcasecmp(key, "stickysession")) {
- balancer->sticky = val;
+ balancer->sticky = apr_pstrdup(p, val);
}
else if (!strcasecmp(key, "nofailover")) {
if (!strcasecmp(val, "on"))
@@ -186,7 +194,7 @@
else if (!strcasecmp(key, "timeout")) {
ival = atoi(val);
if (ival < 1)
- return "timeout must be al least one second";
+ return "timeout must be at least one second";
balancer->timeout = apr_time_from_sec(ival);
}
else {
@@ -886,7 +894,8 @@
return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL);
}
for (i = 0; i < arr->nelts; i++) {
- const char *err = set_balancer_param(balancer, elts[i].key,
elts[i].val);
+ const char *err = set_balancer_param(cmd->pool, balancer, elts[i].key,
+ elts[i].val);
if (err)
return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL);
}
@@ -901,7 +910,8 @@
PROXY_COPY_CONF_PARAMS(worker, conf);
for (i = 0; i < arr->nelts; i++) {
- const char *err = set_worker_param(worker, elts[i].key, elts[i].val);
+ const char *err = set_worker_param(cmd->pool, worker, elts[i].key,
+ elts[i].val);
if (err)
return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL);
}
@@ -1275,7 +1285,8 @@
arr = apr_table_elts(params);
elts = (const apr_table_entry_t *)arr->elts;
for (i = 0; i < arr->nelts; i++) {
- const char *err = set_worker_param(worker, elts[i].key, elts[i].val);
+ const char *err = set_worker_param(cmd->pool, worker, elts[i].key,
+ elts[i].val);
if (err)
return apr_pstrcat(cmd->temp_pool, "BalancerMember ", err, NULL);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]