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";
}
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 {
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;
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);
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);
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);
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);
#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 */
};
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 {
*
*/
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))
/**
* 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))