From: Amos Jeffries Date: Thu, 2 Aug 2012 11:43:53 +0000 (-0600) Subject: Support -DFAILURE_MODE_TIME=n compiler flag X-Git-Tag: SQUID_3_1_21~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e697f3bfec830109955499f6ae1df298e9112b4c;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 e18d6a40da..77ca97df2a 100644 --- a/src/client_side_request.cc +++ b/src/client_side_request.cc @@ -189,7 +189,7 @@ ClientHttpRequest::onlyIfCached()const EBIT_TEST(request->cache_control->mask, CC_ONLY_IF_CACHED); } -/* +/** * 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 @@ -201,12 +201,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; @@ -241,10 +243,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;