]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix 'access_log none' to prevent following logs being used
authorAmos Jeffries <squid3@treenet.co.nz>
Fri, 1 May 2015 07:21:07 +0000 (00:21 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Fri, 1 May 2015 07:21:07 +0000 (00:21 -0700)
The documented behaviour of "access_log none" for preventing logging
using log lines following the directive has not been working in
Squid-3 for some time.

Since the 'none' type does not have a log module associated the entire
switch logic where its abort is checked for was being skipped.

src/log/access_log.cc

index 84d7c06d87a834e14ada1882dfe5fdb3fa19fa59..d49909cfe087bf318232615e381c7d98a1c699eb 100644 (file)
@@ -114,6 +114,10 @@ accessLogLogTo(CustomLog* log, AccessLogEntry::Pointer &al, ACLChecklist * check
         if (log->aclList && checklist && checklist->fastCheck(log->aclList) != ACCESS_ALLOWED)
             continue;
 
+        // The special-case "none" type has no logfile object set
+        if (log->type == Log::Format::CLF_NONE)
+            return;
+
         if (log->logfile) {
             logfileLineStart(log->logfile);
 
@@ -149,9 +153,6 @@ accessLogLogTo(CustomLog* log, AccessLogEntry::Pointer &al, ACLChecklist * check
                 break;
 #endif
 
-            case Log::Format::CLF_NONE:
-                return; // abort!
-
             default:
                 fatalf("Unknown log format %d\n", log->type);
                 break;