Loading modules/proxy/mod_proxy.c +17 −1 Original line number Diff line number Diff line Loading @@ -933,6 +933,7 @@ static void * create_proxy_config(apr_pool_t *p, server_rec *s) ps->timeout_set = 0; ps->badopt = bad_error; ps->badopt_set = 0; ps->slotmem_loc = NULL; ps->pool = p; return ps; Loading Loading @@ -966,6 +967,7 @@ static void * merge_proxy_config(apr_pool_t *p, void *basev, void *overridesv) ps->timeout= (overrides->timeout_set == 0) ? base->timeout : overrides->timeout; ps->badopt = (overrides->badopt_set == 0) ? base->badopt : overrides->badopt; ps->proxy_status = (overrides->proxy_status_set == 0) ? base->proxy_status : overrides->proxy_status; ps->slotmem_loc = (overrides->slotmem_loc == NULL) ? base->slotmem_loc : overrides->slotmem_loc; ps->pool = p; return ps; } Loading Loading @@ -1646,6 +1648,16 @@ static const char * return NULL; } static const char * set_slotmem_loc(cmd_parms *cmd, void *dummy, const char *arg) { server_rec *s = cmd->server; proxy_server_conf *conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module); conf->slotmem_loc = apr_pstrdup(cmd->pool, arg); return NULL; } static void ap_add_per_proxy_conf(server_rec *s, ap_conf_vector_t *dir_config) { proxy_server_conf *sconf = ap_get_module_config(s->module_config, Loading Loading @@ -1795,6 +1807,8 @@ static const command_rec proxy_cmds[] = "Configure Status: proxy status to one of: on | off | full"), AP_INIT_RAW_ARGS("ProxySet", set_proxy_param, NULL, RSRC_CONF|ACCESS_CONF, "A balancer or worker name with list of params"), AP_INIT_TAKE1("ProxySlotMemLoc", set_slotmem_loc, NULL, RSRC_CONF, "Location of the shared area to store the workers information: file-path (default: anonymous"), {NULL} }; Loading Loading @@ -1849,6 +1863,8 @@ PROXY_DECLARE(const char *) ap_proxy_ssl_val(apr_pool_t *p, server_rec *s, static int proxy_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) { proxy_server_conf *sconf = ap_get_module_config(s->module_config, &proxy_module); proxy_ssl_enable = APR_RETRIEVE_OPTIONAL_FN(ssl_proxy_enable); proxy_ssl_disable = APR_RETRIEVE_OPTIONAL_FN(ssl_engine_disable); Loading @@ -1856,7 +1872,7 @@ static int proxy_post_config(apr_pool_t *pconf, apr_pool_t *plog, proxy_ssl_val = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); /* if we have a memory provider create the comarea here */ proxy_create_comarea(pconf); proxy_create_comarea(pconf, sconf->slotmem_loc); /* Also fill the comarea of the health-checker */ proxy_checkstorage_add_workers(pconf, s); Loading modules/proxy/mod_proxy.h +2 −1 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ typedef struct { status_full } proxy_status; /* Status display options */ char proxy_status_set; char *slotmem_loc; apr_pool_t *pool; /* Pool used for allocating this struct */ } proxy_server_conf; Loading Loading @@ -446,7 +447,7 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, request_status, /* proxy_util.c */ PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf); PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf, char *name); PROXY_DECLARE(void) proxy_checkstorage_add_workers(apr_pool_t *pconf, server_rec *s); PROXY_DECLARE(void) proxy_lookup_storage_provider(); Loading modules/proxy/proxy_util.c +5 −3 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,8 @@ PROXY_DECLARE(void) ap_proxy_initialize_worker_share(proxy_server_conf *conf, ap_slotmem_t *myscore; apr_status_t rv; apr_size_t item_size = sizeof(proxy_worker_stat); proxy_server_conf *sconf = ap_get_module_config(s->module_config, &proxy_module); if (worker->s && PROXY_WORKER_IS_INITIALIZED(worker)) { /* The worker share is already initialized */ Loading @@ -1651,7 +1653,7 @@ PROXY_DECLARE(void) ap_proxy_initialize_worker_share(proxy_server_conf *conf, /* Use storage provider when a storage is existing */ if (storage) { rv = storage->ap_slotmem_create(&myscore, "proxy/comarea", item_size, ap_proxy_lb_workers(), conf->pool); rv = storage->ap_slotmem_create(&myscore, sconf->slotmem_loc, item_size, ap_proxy_lb_workers(), conf->pool); if (rv == APR_SUCCESS) rv = storage->ap_slotmem_mem(myscore, worker->id, &score); if (rv != APR_SUCCESS) Loading Loading @@ -2230,14 +2232,14 @@ PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, } /* Create shared area (comarea) called from mod_proxy post_config */ PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf) PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf, char *name) { ap_slotmem_t *myscore; apr_size_t item_size = sizeof(proxy_worker_stat); if (checkstorage) item_size = checkstorage->getentrysize(); if (storage) storage->ap_slotmem_create(&myscore, "proxy/comarea", item_size, ap_proxy_lb_workers(), pconf); storage->ap_slotmem_create(&myscore, name, item_size, ap_proxy_lb_workers(), pconf); } /* get the storage provider for the shared area called from mod_proxy pre_config */ PROXY_DECLARE(void) proxy_lookup_storage_provider() Loading Loading
modules/proxy/mod_proxy.c +17 −1 Original line number Diff line number Diff line Loading @@ -933,6 +933,7 @@ static void * create_proxy_config(apr_pool_t *p, server_rec *s) ps->timeout_set = 0; ps->badopt = bad_error; ps->badopt_set = 0; ps->slotmem_loc = NULL; ps->pool = p; return ps; Loading Loading @@ -966,6 +967,7 @@ static void * merge_proxy_config(apr_pool_t *p, void *basev, void *overridesv) ps->timeout= (overrides->timeout_set == 0) ? base->timeout : overrides->timeout; ps->badopt = (overrides->badopt_set == 0) ? base->badopt : overrides->badopt; ps->proxy_status = (overrides->proxy_status_set == 0) ? base->proxy_status : overrides->proxy_status; ps->slotmem_loc = (overrides->slotmem_loc == NULL) ? base->slotmem_loc : overrides->slotmem_loc; ps->pool = p; return ps; } Loading Loading @@ -1646,6 +1648,16 @@ static const char * return NULL; } static const char * set_slotmem_loc(cmd_parms *cmd, void *dummy, const char *arg) { server_rec *s = cmd->server; proxy_server_conf *conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module); conf->slotmem_loc = apr_pstrdup(cmd->pool, arg); return NULL; } static void ap_add_per_proxy_conf(server_rec *s, ap_conf_vector_t *dir_config) { proxy_server_conf *sconf = ap_get_module_config(s->module_config, Loading Loading @@ -1795,6 +1807,8 @@ static const command_rec proxy_cmds[] = "Configure Status: proxy status to one of: on | off | full"), AP_INIT_RAW_ARGS("ProxySet", set_proxy_param, NULL, RSRC_CONF|ACCESS_CONF, "A balancer or worker name with list of params"), AP_INIT_TAKE1("ProxySlotMemLoc", set_slotmem_loc, NULL, RSRC_CONF, "Location of the shared area to store the workers information: file-path (default: anonymous"), {NULL} }; Loading Loading @@ -1849,6 +1863,8 @@ PROXY_DECLARE(const char *) ap_proxy_ssl_val(apr_pool_t *p, server_rec *s, static int proxy_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) { proxy_server_conf *sconf = ap_get_module_config(s->module_config, &proxy_module); proxy_ssl_enable = APR_RETRIEVE_OPTIONAL_FN(ssl_proxy_enable); proxy_ssl_disable = APR_RETRIEVE_OPTIONAL_FN(ssl_engine_disable); Loading @@ -1856,7 +1872,7 @@ static int proxy_post_config(apr_pool_t *pconf, apr_pool_t *plog, proxy_ssl_val = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); /* if we have a memory provider create the comarea here */ proxy_create_comarea(pconf); proxy_create_comarea(pconf, sconf->slotmem_loc); /* Also fill the comarea of the health-checker */ proxy_checkstorage_add_workers(pconf, s); Loading
modules/proxy/mod_proxy.h +2 −1 Original line number Diff line number Diff line Loading @@ -186,6 +186,7 @@ typedef struct { status_full } proxy_status; /* Status display options */ char proxy_status_set; char *slotmem_loc; apr_pool_t *pool; /* Pool used for allocating this struct */ } proxy_server_conf; Loading Loading @@ -446,7 +447,7 @@ APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, request_status, /* proxy_util.c */ PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf); PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf, char *name); PROXY_DECLARE(void) proxy_checkstorage_add_workers(apr_pool_t *pconf, server_rec *s); PROXY_DECLARE(void) proxy_lookup_storage_provider(); Loading
modules/proxy/proxy_util.c +5 −3 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,8 @@ PROXY_DECLARE(void) ap_proxy_initialize_worker_share(proxy_server_conf *conf, ap_slotmem_t *myscore; apr_status_t rv; apr_size_t item_size = sizeof(proxy_worker_stat); proxy_server_conf *sconf = ap_get_module_config(s->module_config, &proxy_module); if (worker->s && PROXY_WORKER_IS_INITIALIZED(worker)) { /* The worker share is already initialized */ Loading @@ -1651,7 +1653,7 @@ PROXY_DECLARE(void) ap_proxy_initialize_worker_share(proxy_server_conf *conf, /* Use storage provider when a storage is existing */ if (storage) { rv = storage->ap_slotmem_create(&myscore, "proxy/comarea", item_size, ap_proxy_lb_workers(), conf->pool); rv = storage->ap_slotmem_create(&myscore, sconf->slotmem_loc, item_size, ap_proxy_lb_workers(), conf->pool); if (rv == APR_SUCCESS) rv = storage->ap_slotmem_mem(myscore, worker->id, &score); if (rv != APR_SUCCESS) Loading Loading @@ -2230,14 +2232,14 @@ PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, } /* Create shared area (comarea) called from mod_proxy post_config */ PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf) PROXY_DECLARE(void) proxy_create_comarea(apr_pool_t *pconf, char *name) { ap_slotmem_t *myscore; apr_size_t item_size = sizeof(proxy_worker_stat); if (checkstorage) item_size = checkstorage->getentrysize(); if (storage) storage->ap_slotmem_create(&myscore, "proxy/comarea", item_size, ap_proxy_lb_workers(), pconf); storage->ap_slotmem_create(&myscore, name, item_size, ap_proxy_lb_workers(), pconf); } /* get the storage provider for the shared area called from mod_proxy pre_config */ PROXY_DECLARE(void) proxy_lookup_storage_provider() Loading