From: Paul Querna Date: Tue, 2 Dec 2008 08:11:17 +0000 (+0000) Subject: Don't do anything by defautl if we haven't been configured. X-Git-Tag: 2.3.0~57 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e5b7a79cd15fc2c0e3375c798220e3d2929646ed;p=apache Don't do anything by defautl if we haven't been configured. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@722398 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/cluster/mod_heartbeat.c b/modules/cluster/mod_heartbeat.c index 8c59508a68..e458e75e2c 100644 --- a/modules/cluster/mod_heartbeat.c +++ b/modules/cluster/mod_heartbeat.c @@ -211,11 +211,11 @@ static void hb_child_init(apr_pool_t *p, server_rec *s) { hb_ctx_t *ctx = ap_get_module_config(s->module_config, &heartbeat_module); - apr_proc_mutex_child_init(&ctx->mutex, ctx->mutex_path, p); - - ctx->status = -1; - if (ctx->active) { + apr_proc_mutex_child_init(&ctx->mutex, ctx->mutex_path, p); + + ctx->status = -1; + start_hb_worker(p, ctx); if (ctx->status != 0) { ap_log_error(APLOG_MARK, APLOG_CRIT, 0, s, @@ -236,6 +236,10 @@ static int hb_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &ctx->thread_limit); ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &ctx->server_limit); + if (!ctx->active) { + return OK; + } + rv = apr_proc_mutex_create(&ctx->mutex, ctx->mutex_path, #if APR_HAS_FCNTL_SERIALIZE APR_LOCK_FCNTL, @@ -266,11 +270,7 @@ static void hb_register_hooks(apr_pool_t *p) static void *hb_create_config(apr_pool_t *p, server_rec *s) { - hb_ctx_t *cfg = (hb_ctx_t *) apr_palloc(p, sizeof(hb_ctx_t)); - - cfg->active = 0; - cfg->thread_limit = 0; - cfg->server_limit = 0; + hb_ctx_t *cfg = (hb_ctx_t *) apr_pcalloc(p, sizeof(hb_ctx_t)); return cfg; } @@ -294,7 +294,12 @@ static const char *cmd_hb_address(cmd_parms *cmd, return err; } - ctx->active = 1; + if (!ctx->active) { + ctx->active = 1; + } + else { + return "HeartbeatAddress: May only be specified once."; + } rv = apr_parse_addr_port(&host_str, &scope_id, &port, addr, p);