apr_bucket_alloc_t *ba;
apr_array_header_t *templates;
apr_table_t *conditions;
- ap_watchdog_t *watchdog;
apr_hash_t *hcworkers;
apr_thread_pool_t *hctp;
int tpsize;
return ctx;
}
+static ap_watchdog_t *watchdog;
/*
* This serves double duty by not only validating (and creating)
* the health-check template, but also ties into set_worker_param()
if (*expr) {
return "error: extra parameter(s)";
}
-
return NULL;
}
}
/* No error means we have a valid template */
}
-
return NULL;
}
proxy_balancer *balancer;
sctx_t *ctx = (sctx_t *)data;
server_rec *s = ctx->s;
- server_rec *save;
proxy_server_conf *conf;
switch (state) {
case AP_WATCHDOG_STATE_STARTING:
break;
case AP_WATCHDOG_STATE_RUNNING:
- save = s;
/* loop thru all workers */
ap_log_error(APLOG_MARK, APLOG_TRACE2, 0, s,
"Run of %s watchdog.",
HCHECK_WATHCHDOG_NAME);
- while (s) {
+ if (s) {
int i;
conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
balancer = (proxy_balancer *)conf->balancers->elts;
workers++;
}
}
- s = s->next;
}
- ctx->s = save;
break;
case AP_WATCHDOG_STATE_STOPPING:
"mod_watchdog is required");
return !OK;
}
- ctx = (sctx_t *) ap_get_module_config(s->module_config,
- &proxy_hcheck_module);
-
- rv = hc_watchdog_get_instance(&ctx->watchdog,
+ rv = hc_watchdog_get_instance(&watchdog,
HCHECK_WATHCHDOG_NAME,
0, 1, p);
if (rv) {
HCHECK_WATHCHDOG_NAME);
return !OK;
}
- rv = hc_watchdog_register_callback(ctx->watchdog,
- apr_time_from_sec(HCHECK_WATHCHDOG_INTERVAL),
- ctx,
- hc_watchdog_callback);
- if (rv) {
- ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, APLOGNO(03264)
- "Failed to register watchdog callback (%s)",
- HCHECK_WATHCHDOG_NAME);
- return !OK;
+ while (s) {
+ ctx = (sctx_t *) ap_get_module_config(s->module_config,
+ &proxy_hcheck_module);
+
+ rv = hc_watchdog_register_callback(watchdog,
+ apr_time_from_sec(HCHECK_WATHCHDOG_INTERVAL),
+ ctx,
+ hc_watchdog_callback);
+ if (rv) {
+ ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, APLOGNO(03264)
+ "Failed to register watchdog callback (%s)",
+ HCHECK_WATHCHDOG_NAME);
+ return !OK;
+ }
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(03265)
+ "watchdog callback registered (%s)", HCHECK_WATHCHDOG_NAME);
+ s = s->next;
}
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(03265)
- "watchdog callback registered (%s)", HCHECK_WATHCHDOG_NAME);
return OK;
}