Skip to content

Commit 5696097

Browse files
committed
Fixing Issue #124
Feature request: Syslog Search for message NOT containing something
1 parent ead2b4c commit 5696097

2 files changed

Lines changed: 20 additions & 18 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
* issue#122: Apply Cacti#3191 for XSS exposure (CVE-2020-7106)
66

7+
* issue#124: Feature request: Syslog Search for message NOT containing something
8+
79
* issue#128:The syslog alert email is not sent if the Reporting Method is set to threshold.
810

911
* issue#132: Cacti log shows syslog error when setting the "Re-Alert Cycle" in Alert Rules settings

syslog.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ function syslog_statistics() {
185185
'filter' => FILTER_VALIDATE_INT,
186186
'default' => '1'
187187
),
188-
'filter' => array(
189-
'filter' => FILTER_DEFAULT,
188+
'rfilter' => array(
189+
'filter' => FILTER_VALIDATE_IS_REGEX,
190190
'pageset' => true,
191191
'default' => ''
192192
),
@@ -252,7 +252,7 @@ function syslog_statistics() {
252252

253253
$total_rows = syslog_db_fetch_cell('SELECT COUNT(*) FROM ('. $rows_query_string . ') as temp');
254254

255-
$nav = html_nav_bar('syslog.php?tab=stats&filter=' . get_request_var_request('filter'), MAX_DISPLAY_PAGES, get_request_var_request('page'), $rows, $total_rows, 4, __('Messages', 'syslog'), 'page', 'main');
255+
$nav = html_nav_bar('syslog.php?tab=stats', MAX_DISPLAY_PAGES, get_request_var_request('page'), $rows, $total_rows, 4, __('Messages', 'syslog'), 'page', 'main');
256256

257257
print $nav;
258258

@@ -336,10 +336,10 @@ function get_stats_records(&$sql_where, &$sql_groupby, $rows) {
336336
include(dirname(__FILE__) . '/config.php');
337337

338338
/* form the 'where' clause for our main sql query */
339-
if (!isempty_request_var('filter')) {
339+
if (!isempty_request_var('rfilter')) {
340340
$sql_where .= ($sql_where == '' ? 'WHERE ' : ' AND ') .
341-
'sh.host LIKE ' . db_qstr('%' . get_request_var('filter') . '%') . '
342-
OR spr.program LIKE ' . db_qstr('%' . get_request_var('filter') . '%');
341+
'sh.host RLIKE "' . get_request_var('rfilter') . '"
342+
OR spr.program RLIKE "' . get_request_var('rfilter') . '"';
343343
}
344344

345345
if (get_request_var('host') == '-2') {
@@ -521,7 +521,7 @@ function syslog_stats_filter() {
521521
<?php print __('Search', 'syslog');?>
522522
</td>
523523
<td>
524-
<input type='text' id='filter' size='30' value='<?php print html_escape_request_var('filter');?>' onChange='applyFilter()'>
524+
<input type='text' id='rfilter' size='30' value='<?php print html_escape_request_var('rfilter');?>' onChange='applyFilter()'>
525525
</td>
526526
<td>
527527
<?php print __('Time Range', 'syslog');?>
@@ -601,7 +601,7 @@ function applyFilter() {
601601
strURL += '&priority=' + $('#priority').val();
602602
strURL += '&program=' + $('#eprogram').val();
603603
strURL += '&timespan=' + $('#timespan').val();
604-
strURL += '&filter=' + $('#filter').val();
604+
strURL += '&rfilter=' + base64_encode($('#rfilter').val());
605605
strURL += '&rows=' + $('#rows').val();
606606
loadPageNoHeader(strURL);
607607
}
@@ -699,8 +699,8 @@ function syslog_request_validation($current_tab, $force = false) {
699699
'pageset' => true,
700700
'default' => read_user_setting('syslog_eprogram', '-1', $force),
701701
),
702-
'filter' => array(
703-
'filter' => FILTER_DEFAULT,
702+
'rfilter' => array(
703+
'filter' => FILTER_VALIDATE_IS_REGEX,
704704
'pageset' => true,
705705
'default' => ''
706706
),
@@ -860,11 +860,11 @@ function get_syslog_messages(&$sql_where, $rows, $tab) {
860860
'sa.id=' . get_request_var('id');
861861
}
862862

863-
if (!isempty_request_var('filter')) {
863+
if (!isempty_request_var('rfilter')) {
864864
if ($tab == 'syslog') {
865-
$sql_where .= ($sql_where == '' ? 'WHERE ' : ' AND ') . 'message LIKE ' . db_qstr('%' . get_request_var('filter') . '%');
865+
$sql_where .= ($sql_where == '' ? 'WHERE ' : ' AND ') . 'message RLIKE "' . get_request_var('rfilter') . '"';
866866
} else {
867-
$sql_where .= ($sql_where == '' ? 'WHERE ' : ' AND ') . 'logmsg LIKE ' . db_qstr('%' . get_request_var('filter') . '%');
867+
$sql_where .= ($sql_where == '' ? 'WHERE ' : ' AND ') . 'logmsg RLIKE "' . get_request_var('rfilter') . '"';
868868
}
869869
}
870870

@@ -1151,7 +1151,7 @@ function applyFilter() {
11511151
strURL += '&date1='+$('#date1').val();
11521152
strURL += '&date2='+$('#date2').val();
11531153
strURL += '&host='+$('#host').val();
1154-
strURL += '&filter='+$('#filter').val();
1154+
strURL += '&rfilter='+base64_encode($('#rfilter').val());
11551155
strURL += '&efacility='+$('#efacility').val();
11561156
strURL += '&epriority='+$('#epriority').val();
11571157
strURL += '&eprogram='+$('#eprogram').val();
@@ -1324,7 +1324,7 @@ function timeshiftFilterRight() {
13241324
<?php print __('Search', 'syslog');?>
13251325
</td>
13261326
<td>
1327-
<input type='text' id='filter' size='30' value='<?php print html_escape_request_var('filter');?>' onChange='applyFilter()'>
1327+
<input type='text' id='rfilter' size='30' value='<?php print html_escape_request_var('rfilter');?>' onChange='applyFilter()'>
13281328
</td>
13291329
<td>
13301330
<?php print __('Devices', 'syslog');?>
@@ -1661,7 +1661,7 @@ function syslog_messages($tab = 'syslog') {
16611661
form_selectable_cell($sm['logtime'], $sm['seq'], '', 'left');
16621662
form_selectable_cell(isset($hosts[$sm['host_id']]) ? $hosts[$sm['host_id']]:__('Unknown', 'syslog'), $sm['seq'], '', 'left');
16631663
form_selectable_cell($sm['program'], $sm['seq'], '', 'left');
1664-
form_selectable_cell(filter_value(title_trim($sm[$syslog_incoming_config['textField']], get_request_var_request('trimval')), get_request_var('filter')), $sm['seq'], '', 'left syslogMessage');
1664+
form_selectable_cell(filter_value(title_trim($sm[$syslog_incoming_config['textField']], get_request_var_request('trimval')), get_request_var('rfilter')), $sm['seq'], '', 'left syslogMessage');
16651665
form_selectable_cell(isset($facilities[$sm['facility_id']]) ? $facilities[$sm['facility_id']]:__('Unknown', 'syslog'), $sm['seq'], '', 'left');
16661666
form_selectable_cell(isset($priorities[$sm['priority_id']]) ? $priorities[$sm['priority_id']]:__('Unknown', 'syslog'), $sm['seq'], '', 'left');
16671667

@@ -1728,11 +1728,11 @@ function syslog_messages($tab = 'syslog') {
17281728

17291729
syslog_log_row_color($log['severity'], $title);
17301730

1731-
form_selectable_cell(filter_value(strlen($log['name']) ? $log['name']:__('Alert Removed', 'syslog'), get_request_var('filter'), $config['url_path'] . 'plugins/syslog/syslog.php?id=' . $log['seq'] . '&tab=current'), $log['seq'], '', 'left');
1731+
form_selectable_cell(filter_value(strlen($log['name']) ? $log['name']:__('Alert Removed', 'syslog'), get_request_var('rfilter'), $config['url_path'] . 'plugins/syslog/syslog.php?id=' . $log['seq'] . '&tab=current'), $log['seq'], '', 'left');
17321732

17331733
form_selectable_cell(isset($severities[$log['severity']]) ? $severities[$log['severity']]:__('Unknown', 'syslog'), $log['seq'], '', 'left');
17341734
form_selectable_cell($log['logtime'], $log['seq'], '', 'left');
1735-
form_selectable_cell(filter_value(title_trim($log['logmsg'], get_request_var_request('trimval')), get_request_var('filter')), $log['seq'], '', 'syslogMessage left');
1735+
form_selectable_cell(filter_value(title_trim($log['logmsg'], get_request_var_request('trimval')), get_request_var('rfilter')), $log['seq'], '', 'syslogMessage left');
17361736

17371737
form_selectable_cell($log['count'], $log['seq'], '', 'right');
17381738
form_selectable_cell($log['host'], $log['seq'], '', 'right');

0 commit comments

Comments
 (0)