From 4cfcbd3253fe9d389c3886220015152aa31fe853 Mon Sep 17 00:00:00 2001 From: N0YB Date: Fri, 7 Dec 2012 02:37:33 -0800 Subject: Update usr/local/www/widgets/widgets/log.widget.php Firewall Logs Widget Filtering Options to filter on interfaces, 'pass', 'block', & 'reject' --- usr/local/www/widgets/widgets/log.widget.php | 55 +++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 6 deletions(-) (limited to 'usr/local/www/widgets/widgets/log.widget.php') diff --git a/usr/local/www/widgets/widgets/log.widget.php b/usr/local/www/widgets/widgets/log.widget.php index 3d5e26d..482e415 100644 --- a/usr/local/www/widgets/widgets/log.widget.php +++ b/usr/local/www/widgets/widgets/log.widget.php @@ -41,7 +41,19 @@ require_once("functions.inc"); require_once("filter_log.inc"); if($_POST['filterlogentries']) { - $config['widgets']['filterlogentries'] = $_POST['filterlogentries']; + unset($config['widgets']['filterlogentries']); + if( ($_POST['filterlogentries']) and ($_POST['filterlogentries'] != ' ') ) $config['widgets']['filterlogentries'] = $_POST['filterlogentries']; + + unset($config['widgets']['filterlogentriesacts']); + if($_POST['actpass']) $config['widgets']['filterlogentriesacts'] .= $_POST['actpass'] . " "; + if($_POST['actblock']) $config['widgets']['filterlogentriesacts'] .= $_POST['actblock'] . " "; + if($_POST['actreject']) $config['widgets']['filterlogentriesacts'] .= $_POST['actreject'] . " "; + if (isset($config['widgets']['filterlogentriesacts'])) $config['widgets']['filterlogentriesacts'] = trim($config['widgets']['filterlogentriesacts']); + + unset($config['widgets']['filterlogentriesinterfaces']); + if( ($_POST['filterlogentriesinterfaces']) and ($_POST['filterlogentriesinterfaces'] != "All") ) $config['widgets']['filterlogentriesinterfaces'] = $_POST['filterlogentriesinterfaces']; + if (isset($config['widgets']['filterlogentriesinterfaces'])) $config['widgets']['filterlogentriesinterfaces'] = trim($config['widgets']['filterlogentriesinterfaces']); + write_config("Saved Filter Log Entries via Dashboard"); $filename = $_SERVER['HTTP_REFERER']; if(headers_sent($file, $line)){ @@ -58,8 +70,16 @@ if($_POST['filterlogentries']) { $nentries = isset($config['widgets']['filterlogentries']) ? $config['widgets']['filterlogentries'] : 5; //set variables for log + +$nentriesacts = isset($config['widgets']['filterlogentriesacts']) ? $config['widgets']['filterlogentriesacts'] : 'All'; +$nentriesinterfaces = isset($config['widgets']['filterlogentriesinterfaces']) ? $config['widgets']['filterlogentriesinterfaces'] : 'All'; + +$filterfieldsarray = array("act", "interface"); +$filterfieldsarray['act'] = $nentriesacts; +$filterfieldsarray['interface'] = $nentriesinterfaces; + $filter_logfile = "{$g['varlog_path']}/filter.log"; -$filterlog = conv_log_filter($filter_logfile, $nentries); +$filterlog = conv_log_filter($filter_logfile, $nentries, 50, $filterfieldsarray); //Get log entries /* AJAX related routines */ handle_ajax($nentries, $nentries + 20); @@ -90,6 +110,16 @@ function format_log_line(row) { line += ' ' + row[3] + ''; line += ' ' + row[4] + ''; line += ' ' + row[5] + ''; + + var nentriesacts = ""; + var nentriesinterfaces = ""; + + var Action = row[0].match(/alt=.*?(pass|block|reject)/i).join("").match(/pass|block|reject/i).join(""); + var Interface = row[2]; + + if ( !(in_arrayi(Action, nentriesacts.replace (/\s+/g, ',').split(',') ) ) && (nentriesacts != 'All') ) return false; + if ( !(in_arrayi(Interface, nentriesinterfaces.replace(/\s+/g, ',').split(',') ) ) && (nentriesinterfaces != 'All') ) return false; + return line; } @@ -100,11 +130,24 @@ function format_log_line(row) {
Number of lines to display:
- + + + + /> Pass + /> Block + /> Reject +
+ Interfaces: + +       + +
-- cgit v1.1