From: Amos Jeffries Date: Tue, 1 May 2018 01:21:15 +0000 (+0000) Subject: Bug 4171: checking for log_file_daemon despite disabling logging (#181) X-Git-Tag: M-staged-PR181 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8566b13e7cf0f42b37bcc5d894526d08fbd81af9;p=thirdparty%2Fsquid.git Bug 4171: checking for log_file_daemon despite disabling logging (#181) --- diff --git a/src/cache_cf.cc b/src/cache_cf.cc index eab6c63f7c..1bd43590bf 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -736,7 +736,16 @@ configDoConfigure(void) requirePathnameExists("unlinkd_program", Config.Program.unlinkd); #endif - requirePathnameExists("logfile_daemon", Log::TheConfig.logfile_daemon); + bool logDaemonUsed = false; + for (const auto *log = Config.Log.accesslogs; !logDaemonUsed && log; log = log->next) + logDaemonUsed = log->usesDaemon(); +#if ICAP_CLIENT + for (const auto *log = Config.Log.icaplogs; !logDaemonUsed && log; log = log->next) + logDaemonUsed = log->usesDaemon(); +#endif + if (logDaemonUsed) + requirePathnameExists("logfile_daemon", Log::TheConfig.logfile_daemon); + if (Config.Program.redirect) requirePathnameExists("redirect_program", Config.Program.redirect->key); diff --git a/src/log/CustomLog.cc b/src/log/CustomLog.cc index 91543d2054..eca043aaee 100644 --- a/src/log/CustomLog.cc +++ b/src/log/CustomLog.cc @@ -7,5 +7,12 @@ */ #include "squid.h" -#include "CustomLog.h" +#include "log/CustomLog.h" +#include "log/File.h" + +bool +CustomLog::usesDaemon() const +{ + return (filename && strncmp(filename, "daemon:", 7) == 0); +} diff --git a/src/log/CustomLog.h b/src/log/CustomLog.h index 2ac41a11fd..9568d2e0b9 100644 --- a/src/log/CustomLog.h +++ b/src/log/CustomLog.h @@ -22,6 +22,9 @@ class Format; class CustomLog { public: + /// \returns whether the daemon module is used for this log + bool usesDaemon() const; + char *filename; ACLList *aclList; Format::Format *logFormat; diff --git a/src/tests/stub_liblog.cc b/src/tests/stub_liblog.cc index 4b2c78f5b8..8993437268 100644 --- a/src/tests/stub_liblog.cc +++ b/src/tests/stub_liblog.cc @@ -43,7 +43,9 @@ void LogConfig::parseFormats() STUB LogConfig TheConfig; } -//#include "log/CustomLog.h" +#include "log/CustomLog.h" +bool CustomLog::usesDaemon() const STUB_RETVAL(false) + #include "log/File.h" CBDATA_CLASS_INIT(Logfile); Logfile::Logfile(const char *) {STUB}