]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Support -DFAILURE_MODE_TIME=n compiler flag
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 1 Aug 2012 07:01:58 +0000 (19:01 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 1 Aug 2012 07:01:58 +0000 (19:01 +1200)
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.

src/client_side_request.cc

index 19ecb3b131d392c3723900a9be23b7f9b28af245..c41e5427da65194c524c239fa7c762c283cc7508 100644 (file)
@@ -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;