From 3a85dd917ca3d6a7660ea016a190756b8f30bdec Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Mon, 9 Jan 2012 14:32:23 +0100 Subject: [PATCH] Fixed a bug in Syslog and Eventlog summary report which consolidated wrong events when the source filter was used in the report. --- src/classes/logstream.class.php | 39 ++++++++++++++++++- .../report.eventlog.eventsummary.class.php | 4 +- .../report.syslog.syslogsummary.class.php | 4 +- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/classes/logstream.class.php b/src/classes/logstream.class.php index 922292e..bf54e35 100644 --- a/src/classes/logstream.class.php +++ b/src/classes/logstream.class.php @@ -344,13 +344,48 @@ abstract class LogStream { // Reset Filters first to make sure we do not add multiple filters! $this->_filters = null; - + // Parse Filters from string $this->ParseFilters($finalfilters); + // return success return SUCCESS; } - + + /** + * Append filter definition for the current stream. + * + * @param filter object in: filter object + * @return integer Error state + */ + public function AppendFilter($szFilters) + { + OutputDebugMessage("LogStream|AppendFilter: SetFilter combined = '" . $szFilters . "'. ", DEBUG_DEBUG); + + // Parse Filters from string + $this->ParseFilters($szFilters); + + // return success + return SUCCESS; + } + + /** + * Remove filters for a specific Fieldtype + * + * @param filter object in: FieldID + * @return integer Error state + */ + public function RemoveFilters($szFieldID) + { + // Removing Filters for this field! + if ( isset($this->_filters[$szFieldID]) ) + unset($this->_filters[$szFieldID]); + + // return success + return SUCCESS; + } + + /** * Set the direction the stream should read data. * diff --git a/src/classes/reports/report.eventlog.eventsummary.class.php b/src/classes/reports/report.eventlog.eventsummary.class.php index 87fe38e..f2f348e 100644 --- a/src/classes/reports/report.eventlog.eventsummary.class.php +++ b/src/classes/reports/report.eventlog.eventsummary.class.php @@ -356,7 +356,9 @@ class Report_eventsummary extends Report { { // Set custom filters $this->_streamObj->ResetFilters(); - $this->_streamObj->SetFilter( $this->_filterString . " " . $fields[SYSLOG_MESSAGETYPE]['SearchField'] . ":=" . IUT_NT_EventReport . ",=" . IUT_WEVTMONV2 . " " . $fields[SYSLOG_HOST]['SearchField'] . ":=" . $myHost ); + $this->_streamObj->SetFilter( $this->_filterString . " " . $fields[SYSLOG_MESSAGETYPE]['SearchField'] . ":=" . IUT_NT_EventReport . ",=" . IUT_WEVTMONV2 ); + $this->_streamObj->RemoveFilters( SYSLOG_HOST ); + $this->_streamObj->AppendFilter( $fields[SYSLOG_HOST]['SearchField'] . ":=" . $myHost ); // Set Host Item Basics if not set yet $content["report_consdata"][ $myHost ][SYSLOG_HOST] = $myHost; diff --git a/src/classes/reports/report.syslog.syslogsummary.class.php b/src/classes/reports/report.syslog.syslogsummary.class.php index ac70ede..b2e5226 100644 --- a/src/classes/reports/report.syslog.syslogsummary.class.php +++ b/src/classes/reports/report.syslog.syslogsummary.class.php @@ -353,7 +353,9 @@ class Report_syslogsummary extends Report { { // Set custom filters $this->_streamObj->ResetFilters(); - $this->_streamObj->SetFilter( $this->_filterString . " " . $fields[SYSLOG_MESSAGETYPE]['SearchField'] . ":=" . IUT_Syslog . " " . $fields[SYSLOG_HOST]['SearchField'] . ":=" . $myHost ); + $this->_streamObj->SetFilter( $this->_filterString . " " . $fields[SYSLOG_MESSAGETYPE]['SearchField'] . ":=" . IUT_Syslog ); + $this->_streamObj->RemoveFilters( SYSLOG_HOST ); + $this->_streamObj->AppendFilter( $fields[SYSLOG_HOST]['SearchField'] . ":=" . $myHost ); // Set Host Item Basics if not set yet $content["report_consdata"][ $myHost ][SYSLOG_HOST] = $myHost;