From d4d07fbb8e484046e1383f15ced8bdd957df65a0 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 19 Feb 2016 17:08:34 +0100 Subject: [PATCH] (legacy) move display_host_results into log.widget.php The widget collection needs a cleanup, but is not at the top of the priority list. Lets make sure the legacy functionality delivers output and make sure the already cleaned components stay that way. --- src/www/widgets/widgets/log.widget.php | 297 ++++++++++++++----------- 1 file changed, 173 insertions(+), 124 deletions(-) diff --git a/src/www/widgets/widgets/log.widget.php b/src/www/widgets/widgets/log.widget.php index 579091a38..47e12f424 100644 --- a/src/www/widgets/widgets/log.widget.php +++ b/src/www/widgets/widgets/log.widget.php @@ -1,32 +1,33 @@ , Manuel Kasper - and Jonathan Watt . - All rights reserved. + Copyright (C) 2014 Deciso B.V. + Copyright (C) 2007 Scott Dale + Copyright (C) 2009 Jim Pingle (jpingle@gmail.com) + Copyright (C) 2004-2005 T. Lechat , Manuel Kasper + and Jonathan Watt . + All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ $nocsrf = true; @@ -38,15 +39,64 @@ require_once("filter_log.inc"); function find_action_image($action) { - if ((strstr(strtolower($action), 'p')) || (strtolower($action) == 'rdr')) { - return 'glyphicon glyphicon-play text-success'; - } + if ((strstr(strtolower($action), 'p')) || (strtolower($action) == 'rdr')) { + return 'glyphicon glyphicon-play text-success'; + } - if (strstr(strtolower($action), 'r')) { - return 'glyphicon glyphicon-remove text-warning'; - } + if (strstr(strtolower($action), 'r')) { + return 'glyphicon glyphicon-remove text-warning'; + } - return 'glyphicon glyphicon-remove text-danger'; + return 'glyphicon glyphicon-remove text-danger'; +} + +/** + * original from diag_dns.php + * temporary solution. + */ +function display_host_results ($address,$hostname,$dns_speeds) { + $map_lengths = function($element) { return strlen($element[0]); }; + echo gettext("IP Address") . ": {$address} \n"; + echo gettext("Host Name") . ": {$hostname} \n"; + echo "\n"; + $text_table = array(); + $text_table[] = array(gettext("Server"), gettext("Query Time")); + if (is_array($dns_speeds)) { + foreach ($dns_speeds as $qt) { + $text_table[] = array(trim($qt['dns_server']), trim($qt['query_time'])); + } + } + $col0_padlength = max(array_map($map_lengths, $text_table)) + 4; + foreach ($text_table as $text_row) { + echo str_pad($text_row[0], $col0_padlength) . $text_row[1] . "\n"; + } +} + +if (!empty($_GET['host']) && !empty($_GET['dialog_output'])) { + $host = trim($_GET['host'], " \t\n\r\0\x0B[];\"'"); + $host_esc = escapeshellarg($host); + $dns_servers = array(); + exec("/usr/bin/grep nameserver /etc/resolv.conf | /usr/bin/cut -f2 -d' '", $dns_servers); + foreach ($dns_servers as $dns_server) { + $query_time = exec("/usr/bin/drill {$host_esc} " . escapeshellarg("@" . trim($dns_server)) . " | /usr/bin/grep Query | /usr/bin/cut -d':' -f2"); + if ($query_time == "") { + $query_time = gettext("No response"); + } + $dns_speeds[] = array('dns_server' => $dns_server, 'query_time' => $query_time); + } + $ipaddr = ""; + if (count($input_errors) == 0) { + if (is_ipaddr($host)) { + $resolved[] = " " . gethostbyaddr($host); // add a space to provide an empty type field + $ipaddr = $host; + } elseif (is_hostname($host)) { + exec("/usr/bin/drill {$host_esc} A | /usr/bin/grep 'IN' | /usr/bin/grep -v ';' | /usr/bin/awk '{ print $4 \" \" $5 }'", $resolved); + $ipaddr = explode(" ", $resolved[count($resolved)-1])[1]; + } + } + + display_host_results ($host, $resolved[0], $dns_speeds); + exit; } @@ -85,7 +135,6 @@ if (is_numeric($_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'; @@ -122,22 +171,22 @@ if (isset($config['syslog']['reverse'])) { /* Called by the AJAX updater */ function format_log_line(row) { - var line = '' + row[0] + '<\/td>' + - '' + row[1].slice(0,-3) + '<\/td>' + - '' + row[2] + '<\/td>' + - '' + row[3] + '<\/td>' + - '' + row[4] + '<\/td>'; + var line = '' + row[0] + '<\/td>' + + '' + row[1].slice(0,-3) + '<\/td>' + + '' + row[2] + '<\/td>' + + '' + row[3] + '<\/td>' + + '' + row[4] + '<\/td>'; - var nentriesacts = ""; - var nentriesinterfaces = ""; + 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]; + 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; + 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; + return line; } //]]> @@ -145,55 +194,55 @@ function format_log_line(row) { - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + - + - + - - + - - + +
- ', outputrule);"> - - - - + + ', outputrule);"> + + + + &dialog_output=true', outputrule);" title=""> - - + &dialog_output=true', outputrule);" title=""> -