From 8633628b5abe10a03528ee8d0f3da12451d5f9e4 Mon Sep 17 00:00:00 2001 From: dvserg Date: Thu, 17 Feb 2011 06:15:45 +0300 Subject: squidGuard log changes --- config/squidGuard/squidguard_log.php | 271 +++++++++++++++++++++++++++++------ 1 file changed, 227 insertions(+), 44 deletions(-) (limited to 'config/squidGuard/squidguard_log.php') diff --git a/config/squidGuard/squidguard_log.php b/config/squidGuard/squidguard_log.php index 9532c44d..e5f19407 100644 --- a/config/squidGuard/squidguard_log.php +++ b/config/squidGuard/squidguard_log.php @@ -30,31 +30,237 @@ $pgtitle = "Proxy filter SquidGuard: Log page"; -require_once('globals.inc'); -require_once('config.inc'); -require_once("guiconfig.inc"); -require_once('util.inc'); -require_once('pfsense-utils.inc'); -require_once('pkg-utils.inc'); -require_once('service-utils.inc'); - -include("head.inc"); - +require_once('guiconfig.inc'); +require_once('notices.inc'); if (file_exists("/usr/local/pkg/squidguard.inc")) { require_once("/usr/local/pkg/squidguard.inc"); } -$mode = $_GET["mode"]; +# ------------------------------------------------------------------------------ +# defines +# ------------------------------------------------------------------------------ $selfpath = "/squidGuard/squidguard_log.php"; -if (!in_array( $mode, array("blocked", "fgui", "flog", "pconf", "fconf"))) $mode = "blocked"; +# ------------------------------------------------------------------------------ +# Requests +# ------------------------------------------------------------------------------ +if ($_REQUEST['getactivity']) +{ + header("Content-type: text/javascript"); + echo squidguard_log_AJAX_response( $_REQUEST ); + exit; +} + +# ------------------------------------------------------------------------------ +# Functions +# ------------------------------------------------------------------------------ + +function squidguard_log_AJAX_response( $request ) +{ + $res = ''; + $offset = $request['offset'] ? $request['offset'] : 0; + $reverse = $request['reverse'] == 'yes'? true : false; + $pcaption = ' '; + + # Actions + switch($request['rep']) { + case 'filterconf': + if (function_exists("squidguard_conflist")) + $cont = squidguard_conflist( ); + else $cont = "Function 'squidguard_conflist' not found."; + $res = squidguard_prep_textareacont($cont); + break; + case 'proxyconf': + if (function_exists("squidguard_squid_conflist")) + $cont = squidguard_squid_conflist( ); + else $cont = "Function 'squidguard_squid_conflist' not found."; + $res = squidguard_prep_textareacont($cont); + break; + case 'guilog': + $res = squidguard_logrep(squidguard_guidump( &$offset, 50, true)); + break; + case 'filterlog': + $res = squidguard_logrep(squidguard_filterdump( &$offset, 50, true)); + break; + case "blocked": + default: + $res = squidguard_logrep(squidguard_blockdump( &$offset, 50, true)); + break; + } + + $res .= "el('offset').value = {$offset};"; + $res .= "el('showoffset').innerHTML = {$offset};"; + return $res; +} + +function squidguard_logrep( $dump ) +{ + $res = ''; + + if (!empty($dump)) { + if (is_array($dump)) { + $acount = count($dump[0]) ? count($dump[0]) : 1; + $res = ""; + $res .= ""; + + foreach($dump as $dm) { + if (!$dm[0] || !$dm[1]) continue; + # datetime + $dm[0] = date("d.m.Y H:i:s", strtotime($dm[0])); + $res .= ""; + + # col 1 + $dm[1] = htmlentities($dm[1]); + $dm[1] = squidguard_html_autowrap($dm[1]); + $res .= ""; + + # for blocked rep + if (count($dm) > 2) { + $dm[2] = htmlentities($dm[2]); + $dm[2] = squidguard_html_autowrap($dm[2]); + $res .= ""; + $res .= ""; + } + $res .= ""; + } + $res .= "
Show top 50 entries. List from the line: " . + "<<" . + " 0 " . + ">> " . + "
{$dm[0]}{$dm[1]}{$dm[2]}{$dm[3]}
"; + } + else $res = "{$dump}"; + } else { + $res = "No data."; + } + + $res = "el(\"reportarea\").innerHTML = \"{$res}\";"; + return $res; +} + +function squidguard_prepfor_JS($cont) +{ + # replace for JS + $cont = str_replace("\n", "\\n", $cont); + $cont = str_replace("\r", "\\r", $cont); + $cont = str_replace("\t", "\\t", $cont); + $cont = str_replace("\"", "\'", $cont); + return $cont; +} + +function squidguard_prep_textareacont($cont) +{ + $cont = squidguard_prepfor_JS($cont); + return + "el('reportarea').innerHTML = \"
\";" . + "el('pconf').innerHTML = '$cont';"; +} + +function squidguard_html_autowrap($cont) +{ + # split strings + $p = 0; + $pstep = 25; + $str = $cont; + $cont = ''; + for ( $p = 0; $p < strlen($str); $p += $pstep ) { + $s = substr( $str, $p, $pstep ); + if ( !$s ) break; + $cont .= $s . ""; + } + + return $cont; +} + +# ------------------------------------------------------------------------------ +# HTML Page +# ------------------------------------------------------------------------------ +include("head.inc"); +echo "\t\n"; ?> + + +
+ + @@ -84,47 +290,24 @@ if (!in_array( $mode, array("blocked", "fgui", "flog", "pconf", "fconf"))) $mode # Subtabs $mode = $mode ? $mode : "blocked"; $tab_array = array(); - $tab_array[] = array(gettext("Blocked"), ($mode == "blocked"), "{$selfpath}?mode=blocked"); - $tab_array[] = array(gettext("Filter GUI log"), ($mode == "fgui"), "{$selfpath}?mode=fgui"); - $tab_array[] = array(gettext("Filter log"), ($mode == "flog"), "{$selfpath}?mode=flog"); - $tab_array[] = array(gettext("Proxy config"), ($mode == "pconf"), "{$selfpath}?mode=pconf"); - $tab_array[] = array(gettext("Filter config"), ($mode == "fconf"), "{$selfpath}?mode=fconf"); + $tab_array[] = array(gettext("Blocked"), ($mode == "blocked"), "blocklog"); + $tab_array[] = array(gettext("Filter GUI log"), ($mode == "fgui"), "guilog"); + $tab_array[] = array(gettext("Filter log"), ($mode == "flog"), "filterlog"); + $tab_array[] = array(gettext("Proxy config"), ($mode == "pconf"), "proxyconf"); + $tab_array[] = array(gettext("Filter config"), ($mode == "fconf"), "filterconf"); echo "| "; foreach ($tab_array as $ta) { - $bl = $ta[1] ? "" : ""; - $br = $ta[1] ? "" : ""; - echo "$bl{$ta[0]}$br | "; + $id = "hd_{$ta[2]}"; + $bb = $ta[1] ? "font-weight: bold;" : ''; + echo "{$ta[0]} | "; } echo ""; ?> - +
-
" ; - break; - case "fconf": if (function_exists("squidguard_conflist")) - $cont = squidguard_conflist( ); - else $cont = "Function 'squidguard_conflist' not found."; - echo "
" ; - break; - case "flog": if (function_exists( "squidguard_logrep" )) echo squidguard_logrep( SQUIDGUARD_LOGDIR . '/squidGuard.log', 50, false ); - break; - case "fgui": if (function_exists( "squidguard_logrep" )) echo squidguard_logrep( SQUIDGUARD_LOGDIR . SQUIDGUARD_CONFLOGFILE, 50, false ); - break; - case "blocked": - default: if (function_exists( "squidguard_logrep" )) echo squidguard_logrep( SQUIDGUARD_LOGDIR . '/' . SQUIDGUARD_LOGFILE, 50, false ); - break; - } -?> -
-- cgit v1.2.3