} proxy_status; /* Status display options */
apr_sockaddr_t *source_address;
apr_global_mutex_t *mutex; /* global lock (needed??) */
- ap_slotmem_instance_t *slot; /* balancers shm data - runtime */
+ ap_slotmem_instance_t *bslot; /* balancers shm data - runtime */
ap_slotmem_provider_t *storage;
unsigned int req_set:1;
#define PROXY_WORKER_DEFAULT_RETRY 60
/* Some max char string sizes, for shm fields */
+#ifndef PROXY_WORKER_MAX_SCHEME_SIZE
#define PROXY_WORKER_MAX_SCHEME_SIZE 16
+#endif
+#ifndef PROXY_WORKER_MAX_ROUTE_SIZE
#define PROXY_WORKER_MAX_ROUTE_SIZE 64
+#endif
+#ifndef PROXY_WORKER_MAX_NAME_SIZE
#define PROXY_WORKER_MAX_NAME_SIZE 96
+#endif
+#ifndef PROXY_WORKER_MAX_HOSTNAME_SIZE
#define PROXY_WORKER_MAX_HOSTNAME_SIZE 64
+#endif
+#ifndef PROXY_BALANCER_MAX_STICKY_SIZE
#define PROXY_BALANCER_MAX_STICKY_SIZE 64
+#endif
+#ifndef PROXY_MAX_PROVIDER_NAME_SIZE
#define PROXY_MAX_PROVIDER_NAME_SIZE 16
+#endif
#define PROXY_STRNCPY(dst, src) apr_cpystrn((dst), (src), sizeof(dst))
struct proxy_balancer {
apr_array_header_t *workers; /* initially configured workers */
apr_array_header_t *errstatuses; /* statuses to force members into error */
- ap_slotmem_instance_t *slot; /* worker shm data - runtime */
+ ap_slotmem_instance_t *wslot; /* worker shm data - runtime */
ap_slotmem_provider_t *storage;
int growth; /* number of post-config workers can added */
int max_workers; /* maximum number of allowed workers */
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "balancer slotmem_create failed");
return !OK;
}
- conf->slot = new;
+ conf->bslot = new;
}
conf->storage = storage;
apr_pool_cleanup_null);
/* setup shm for balancers */
- if ((rv = storage->grab(conf->slot, &index)) != APR_SUCCESS) {
+ if ((rv = storage->grab(conf->bslot, &index)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "balancer slotmem_grab failed");
return !OK;
}
- if ((rv = storage->dptr(conf->slot, index, (void *)&bshm)) != APR_SUCCESS) {
+ if ((rv = storage->dptr(conf->bslot, index, (void *)&bshm)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "balancer slotmem_dptr failed");
return !OK;
}
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "worker slotmem_create failed");
return !OK;
}
- balancer->slot = new;
+ balancer->wslot = new;
balancer->storage = storage;
/* sync all timestamps */
proxy_worker_shared *shm;
worker = *workers;
- if ((rv = storage->grab(balancer->slot, &index)) != APR_SUCCESS) {
+ if ((rv = storage->grab(balancer->wslot, &index)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "worker slotmem_grab failed");
return !OK;
}
- if ((rv = storage->dptr(balancer->slot, index, (void *)&shm)) != APR_SUCCESS) {
+ if ((rv = storage->dptr(balancer->wslot, index, (void *)&shm)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, "worker slotmem_dptr failed");
return !OK;
}
char *ret;
proxy_worker *nworker;
nworker = ap_proxy_get_worker(conf->pool, bsel, conf, val);
- if (!nworker && storage->num_free_slots(bsel->slot)) {
+ if (!nworker && storage->num_free_slots(bsel->wslot)) {
if ((rv = PROXY_GLOBAL_LOCK(bsel)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"%s: Lock failed for adding worker",
unsigned int index;
proxy_worker_shared *shm;
PROXY_COPY_CONF_PARAMS(nworker, conf);
- if ((rv = storage->grab(bsel->slot, &index)) != APR_SUCCESS) {
+ if ((rv = storage->grab(bsel->wslot, &index)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_EMERG, rv, r,
"worker slotmem_grab failed");
if ((rv = PROXY_GLOBAL_UNLOCK(bsel)) != APR_SUCCESS) {
}
return HTTP_BAD_REQUEST;
}
- if ((rv = storage->dptr(bsel->slot, index, (void *)&shm)) != APR_SUCCESS) {
+ if ((rv = storage->dptr(bsel->wslot, index, (void *)&shm)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_EMERG, rv, r,
"worker slotmem_dptr failed");
if ((rv = PROXY_GLOBAL_UNLOCK(bsel)) != APR_SUCCESS) {
/* the below is a safe cast, since the number of slots total will
* never be more than max_workers, which is restricted to int */
ap_rprintf(r, "<td align='center'>%d [%d Used]</td>\n", balancer->max_workers,
- balancer->max_workers - (int)storage->num_free_slots(balancer->slot));
+ balancer->max_workers - (int)storage->num_free_slots(balancer->wslot));
if (*balancer->s->sticky) {
if (strcmp(balancer->s->sticky, balancer->s->sticky_path)) {
ap_rvputs(r, "<td align='center'>", balancer->s->sticky, " | ",
ap_rvputs(r, "value ='", bsel->s->sticky, NULL);
}
ap_rputs("'> (Use '-' to delete)</td></tr>\n", r);
- if (storage->num_free_slots(bsel->slot) != 0) {
+ if (storage->num_free_slots(bsel->wslot) != 0) {
ap_rputs("<tr><td>Add New Worker:</td><td><input name='b_nwrkr' id='b_nwrkr' size=32 type=text>"
" Are you sure? <input name='b_wyes' id='b_wyes' type=checkbox value='1'>"
"</td></tr>", r);
if (conf->balancers->nelts) {
apr_size_t size;
unsigned int num;
- storage->attach(&(conf->slot), conf->id, &size, &num, p);
- if (!conf->slot) {
+ storage->attach(&(conf->bslot), conf->id, &size, &num, p);
+ if (!conf->bslot) {
ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, "slotmem_attach failed");
exit(1); /* Ugly, but what else? */
}