From d73810d8c7fb5720245e40c3eb501411bf295a8c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jan 2014 11:25:28 +0100
Subject: [PATCH] Outdated warning for clamav is only shown with warning level
 in monitor when the daily.cfd update failed as well.

---
 .../cron.d/100-monitor_clamav_log.inc.php     | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/server/lib/classes/cron.d/100-monitor_clamav_log.inc.php b/server/lib/classes/cron.d/100-monitor_clamav_log.inc.php
index 4bc9a1b3c..358664944 100644
--- a/server/lib/classes/cron.d/100-monitor_clamav_log.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_clamav_log.inc.php
@@ -132,15 +132,20 @@ class cronjob_monitor_clamav_log extends cronjob {
 		 * Now we have the last log in the array.
 		 * Check if the outdated-string is found...
 		 */
+		$clamav_outdated_warning = false;
+		$clamav_bytecode_updated = false;
 		foreach ($lastLog as $line) {
-			if (strpos(strtolower($line), 'outdated') !== false) {
-				/*
-				 * Outdatet is only info, because if we set this to warning, the server is
-				 * as long in state warning, as there is a new version of ClamAv which takes
-				 * sometimes weeks!
-				 */
-				$state = $this->_tools->_setState($state, 'info');
+			if (stristr($line,'outdated')) {
+				$clamav_outdated_warning = true;
 			}
+			if(stristr($line,'main.cld is up to date')) {
+				$clamav_bytecode_updated = true;
+			}
+		}
+		
+		//* Warn when clamav is outdated and main.cld update failed.
+		if($clamav_outdated_warning == true && $clamav_bytecode_updated == false) {
+			$state = $this->_setState($state, 'info');
 		}
 
 		$res = array();
-- 
GitLab