From: Amos Jeffries Date: Wed, 1 Aug 2012 07:01:58 +0000 (+1200) Subject: Support -DFAILURE_MODE_TIME=n compiler flag X-Git-Tag: sourceformat-review-1~147 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77aacca5186b9fe57a4c07e41c89be990f25007d;p=thirdparty%2Fsquid.git Support -DFAILURE_MODE_TIME=n compiler flag This value determins at compile-time how long Squid spends in HIT-only mode after the failure ratio goes over 1.0. see checkFailureRatio() in src/client_side_request.cc for details on the ratio. This flag is supported to remove the need for patching when alteration is required. --- diff --git a/src/client_side_request.cc b/src/client_side_request.cc index 19ecb3b131..c41e5427da 100644 --- a/src/client_side_request.cc +++ b/src/client_side_request.cc @@ -210,7 +210,7 @@ ClientHttpRequest::onlyIfCached()const request->cache_control->onlyIfCached(); } -/* +/** * This function is designed to serve a fairly specific purpose. * Occasionally our vBNS-connected caches can talk to each other, but not * the rest of the world. Here we try to detect frequent failures which @@ -222,12 +222,14 @@ ClientHttpRequest::onlyIfCached()const * * Duane W., Sept 16, 1996 */ - -#define FAILURE_MODE_TIME 300 - static void checkFailureRatio(err_type etype, hier_code hcode) { + // Can be set at compile time with -D compiler flag +#ifndef FAILURE_MODE_TIME +#define FAILURE_MODE_TIME 300 +#endif + static double magic_factor = 100.0; double n_good; double n_bad; @@ -262,10 +264,10 @@ checkFailureRatio(err_type etype, hier_code hcode) if (request_failure_ratio < 1.0) return; - debugs(33, 0, "Failure Ratio at "<< std::setw(4)<< + debugs(33, DBG_CRITICAL, "WARNING: Failure Ratio at "<< std::setw(4)<< std::setprecision(3) << request_failure_ratio); - debugs(33, 0, "Going into hit-only-mode for " << + debugs(33, DBG_CRITICAL, "WARNING: Going into hit-only-mode for " << FAILURE_MODE_TIME / 60 << " minutes..."); hit_only_mode_until = squid_curtime + FAILURE_MODE_TIME;