From: William A. Rowe Jr Date: Wed, 11 Aug 2004 22:48:13 +0000 (+0000) Subject: Fix some config checking params. X-Git-Tag: post_ajp_proxy~24 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d605dabeb3302b0e103b817144e9ff86555cffb;p=apache Fix some config checking params. Added route and route redirect to the runtime worker. Submitted by: mturk git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@104606 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 8b13df3623..a5cade2a79 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -856,7 +856,7 @@ static const char * char *val = strchr(word, '='); if (!val) { if (cmd->path) - return "Invalid ProxyPass parameter. Paramet must be in the form key=value"; + return "Invalid ProxyPass parameter. Paramet must be in the form 'key=value'"; else return "ProxyPass can not have a path when defined in a location"; } @@ -883,12 +883,12 @@ static const char * cmd->pool, conf, r); if (err) - return apr_pstrcat(cmd->temp_pool, "BalancerMember: ", err, NULL); + 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); if (err) - return apr_pstrcat(cmd->temp_pool, "ProxyPass: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL); } } else { @@ -896,14 +896,14 @@ static const char * if (!worker) { const char *err = ap_proxy_add_worker(&worker, cmd->pool, conf, r); if (err) - return apr_pstrcat(cmd->temp_pool, "ProxyPass: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL); } 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); if (err) - return apr_pstrcat(cmd->temp_pool, "ProxyPass: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL); } } return NULL; @@ -1249,7 +1249,7 @@ static const char *add_member(cmd_parms *cmd, void *dummy, const char *arg) if (cmd->path) return "BalancerMember can not have a balancer name when defined in a location"; else - return "Invalid BalancerMember parameter. Paramet must be in the form key=value"; + return "Invalid BalancerMember parameter. Paramet must be in the form 'key=value'"; else *val++ = '\0'; apr_table_setn(params, word, val); @@ -1268,7 +1268,7 @@ static const char *add_member(cmd_parms *cmd, void *dummy, const char *arg) if (!worker) { const char *err; if ((err = ap_proxy_add_worker(&worker, cmd->pool, conf, name)) != NULL) - return apr_pstrcat(cmd->temp_pool, "BalancerMember: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "BalancerMember ", err, NULL); } PROXY_COPY_CONF_PARAMS(worker, conf); @@ -1277,7 +1277,7 @@ static const char *add_member(cmd_parms *cmd, void *dummy, const char *arg) for (i = 0; i < arr->nelts; i++) { const char *err = set_worker_param(worker, elts[i].key, elts[i].val); if (err) - return apr_pstrcat(cmd->temp_pool, "BalancerMember: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "BalancerMember ", err, NULL); } /* Try to find the balancer */ balancer = ap_proxy_get_balancer(cmd->temp_pool, conf, name); @@ -1286,7 +1286,7 @@ static const char *add_member(cmd_parms *cmd, void *dummy, const char *arg) cmd->pool, conf, path); if (err) - return apr_pstrcat(cmd->temp_pool, "BalancerMember: ", err, NULL); + return apr_pstrcat(cmd->temp_pool, "BalancerMember ", err, NULL); } /* Add the worker to the load balancer */ ap_proxy_add_worker_to_balancer(balancer, worker); diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h index ddc237c392..a35f1bed17 100644 --- a/modules/proxy/mod_proxy.h +++ b/modules/proxy/mod_proxy.h @@ -209,6 +209,7 @@ struct proxy_conn_pool { #if APR_HAS_THREADS apr_reslist_t *res; /* Connection resource list */ #endif + int nfree; /* Balancer free count number */ proxy_conn_rec *conn; /* Single connection for prefork mpm's */ }; @@ -250,6 +251,8 @@ typedef struct { double lbsatus; /* Current lbstatus */ apr_size_t transfered; /* Number of bytes transfered to remote */ apr_size_t readed; /* Number of bytes readed from remote */ + const char *route; + const char *redirect; } proxy_runtime_worker; struct proxy_balancer { @@ -311,7 +314,7 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, fixups, (request_rec *r)) * */ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, pre_request, (proxy_worker **worker, - struct proxy_balancer **balancer, + proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url)) /** @@ -319,7 +322,7 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, pre_request, (proxy_worker **worker * It is called after request for updating runtime balancer status. */ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, post_request, (proxy_worker *worker, - struct proxy_balancer *balancer, request_rec *r, + proxy_balancer *balancer, request_rec *r, proxy_server_conf *conf))