From: Jim Jagielski Date: Wed, 21 Jun 2017 13:21:18 +0000 (+0000) Subject: Allow finer control over hcheck intervals... minimum is whatever X-Git-Tag: 2.5.0-alpha~360 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=30923668d17fed5fc259c5f034b69308a0fb1438;p=thirdparty%2Fapache%2Fhttpd.git Allow finer control over hcheck intervals... minimum is whatever the watchdog slice is. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799437 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy_hcheck.c b/modules/proxy/mod_proxy_hcheck.c index 4ad2b62d0e0..279c3ac5269 100644 --- a/modules/proxy/mod_proxy_hcheck.c +++ b/modules/proxy/mod_proxy_hcheck.c @@ -155,14 +155,18 @@ static const char *set_worker_hc_param(apr_pool_t *p, return "Unknown method"; } else if (!strcasecmp(key, "hcinterval")) { - ival = atoi(val); - if (ival < HCHECK_WATHCHDOG_INTERVAL) - return apr_psprintf(p, "Interval must be a positive value greater than %d seconds", - HCHECK_WATHCHDOG_INTERVAL); + apr_interval_time_t hci; + apr_status_t rv; + rv = ap_timeout_parameter_parse(val, &hci, "s"); + if (rv != APR_SUCCESS) + return "Unparse-able hcinterval setting"; + if (hci < AP_WD_TM_SLICE) + return apr_psprintf(p, "Interval must be a positive value greater than %" + APR_TIME_T_FMT "ms", apr_time_as_msec(AP_WD_TM_SLICE)); if (worker) { - worker->s->interval = apr_time_from_sec(ival); + worker->s->interval = hci; } else { - temp->interval = apr_time_from_sec(ival); + temp->interval = hci; } } else if (!strcasecmp(key, "hcpasses")) { @@ -1022,7 +1026,7 @@ static int hc_post_config(apr_pool_t *p, apr_pool_t *plog, continue; } rv = hc_watchdog_register_callback(watchdog, - apr_time_from_sec(HCHECK_WATHCHDOG_INTERVAL), + apr_time_from_sec(AP_WD_TM_SLICE), ctx, hc_watchdog_callback); if (rv) {