Author: jfrederic.clere(a)jboss.com
Date: 2009-03-16 05:43:46 -0400 (Mon, 16 Mar 2009)
New Revision: 2359
Modified:
trunk/mod_cluster/native/mod_manager/mod_manager.c
Log:
* or /* may be confusing other modes. So use /NODE_COMMAND instead.
In fact the tests failed on windoze with:
[error] [client 127.0.0.1] (20025)The given path contained wildcard characters: access to
/* failed
due to that problem.
Modified: trunk/mod_cluster/native/mod_manager/mod_manager.c
===================================================================
--- trunk/mod_cluster/native/mod_manager/mod_manager.c 2009-03-12 18:01:27 UTC (rev 2358)
+++ trunk/mod_cluster/native/mod_manager/mod_manager.c 2009-03-16 09:43:46 UTC (rev 2359)
@@ -86,6 +86,9 @@
/* Protocol version supported */
#define VERSION_PROTOCOL "0.0.0"
+/* Internal substitution for node commands */
+#define NODE_COMMAND "/NODE_COMMAND"
+
/* shared memory */
mem_t *contextstatsmem = NULL;
mem_t *nodestatsmem = NULL;
@@ -1095,8 +1098,7 @@
}
/* Process the * APP commands */
- i = strlen(r->uri);
- if (strcmp(r->uri, "*") == 0 || (i>=2 && r->uri[i-1] ==
'*' && r->uri[i-2] == '/')) {
+ if (strcmp(r->filename, NODE_COMMAND) == 0) {
return (process_node_cmd(r, status, errtype, node));
}
@@ -1364,11 +1366,17 @@
else if (strcasecmp(r->method, "INFO") == 0)
ours = 1;
if (ours) {
+ int i;
/* The method one of ours */
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
"manager_trans %s (%s)", r->method, r->uri);
r->handler = "mod-cluster";
- r->filename = apr_pstrdup(r->pool, r->uri);
+ i = strlen(r->uri);
+ if (strcmp(r->uri, "*") == 0 || (i>=2 && r->uri[i-1]
== '*' && r->uri[i-2] == '/')) {
+ r->filename = apr_pstrdup(r->pool, NODE_COMMAND);
+ } else {
+ r->filename = apr_pstrdup(r->pool, r->uri);
+ }
return OK;
}
@@ -1618,7 +1626,7 @@
/* XXX: Size limit it? */
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
- "manager_handler %s (%s) processing: \"%s\"",
r->method, r->uri, buff);
+ "manager_handler %s (%s) processing: \"%s\"",
r->method, r->filename, buff);
decodeenc(buff);
if (strcasecmp(r->method, "CONFIG") == 0)
errstring = process_config(r, buff, &errtype);
Show replies by date