function buildconf() { $sock = new sockets(); $unix = new unix(); $SargOutputDir = $sock->GET_INFO("SargOutputDir"); if ($SargOutputDir == null) { $SargOutputDir = "/var/www/html/squid-reports"; } if ($unix->IsProtectedDirectory($SargOutputDir, true)) { $sock->SET_INFO("SargOutputDir", "/var/www/html/squid-reports"); $SargOutputDir = "/var/www/html/squid-reports"; } if (!is_file("/etc/artica-postfix/old_SargOutputDir")) { @file_put_contents("/etc/artica-postfix/old_SargOutputDir", $SargOutputDir); } if ($SargOutputDir == "/usr/share/artica-postfix/squid") { $SargOutputDir = "/var/www/html/squid-reports"; $sock->SET_INFO("SargOutputDir", "/var/www/html/squid-reports"); } if ($SargOutputDir != "/usr/share/artica-postfix/squid") { @mkdir("{$SargOutputDir}", 0755, true); if (is_dir("/usr/share/artica-postfix/squid")) { $cp = $unix->find_program("cp"); $rm = $unix->find_program("rm"); shell_exec("{$cp} -rf /usr/share/artica-postfix/squid/* \"{$SargOutputDir}/\""); shell_exec("{$rm} -rf \"/usr/share/artica-postfix/squid\""); @rmdir("/usr/share/artica-postfix/squid"); } } $old_SargOutputDir = @file_get_contents("/etc/artica-postfix/old_SargOutputDir"); if ($old_SargOutputDir != $SargOutputDir) { @mkdir("{$SargOutputDir}", 0755, true); if (is_dir($old_SargOutputDir)) { $cp = $unix->find_program("cp"); $rm = $unix->find_program("rm"); shell_exec("{$cp} -rf \"{$old_SargOutputDir}/*\" \"{$SargOutputDir}/\""); if (!$unix->IsProtectedDirectory($old_SargOutputDir, true)) { shell_exec("{$rm} -rf \"{$old_SargOutputDir}\""); @rmdir($old_SargOutputDir); } if (!is_dir($old_SargOutputDir)) { @file_put_contents("/etc/artica-postfix/old_SargOutputDir", $SargOutputDir); } } else { @file_put_contents("/etc/artica-postfix/old_SargOutputDir", $SargOutputDir); } } events("Output dir: {$SargOutputDir}"); $SargConfig = unserialize(base64_decode($sock->GET_INFO("SargConfig"))); $SargConfig = SargDefault($SargConfig); if ($SargConfig["lastlog"] == 0) { $SargConfig["lastlog"] = 90; } $SargConfig["lastlog"] * 24; $conf[] = "language {$SargConfig["language"]}"; $conf[] = "graphs {$SargConfig["graphs"]}"; $conf[] = "title \"{$SargConfig["title"]}\""; $conf[] = "topsites_num {$SargConfig["topsites_num"]}"; $conf[] = "topuser_num {$SargConfig["topuser_num"]}"; $conf[] = "report_type {$SargConfig["report_type"]}"; $conf[] = "topsites_sort_order CONNECT {$SargConfig["topsites_sort_order"]}"; $conf[] = "index_sort_order {$SargConfig["index_sort_order"]}"; $conf[] = "resolve_ip {$SargConfig["resolve_ip"]}"; $conf[] = "user_ip {$SargConfig["user_ip"]}"; $conf[] = "exclude_hosts /etc/squid3/sarg.hosts"; $conf[] = "date_format {$SargConfig["date_format"]}"; $conf[] = "records_without_userid {$SargConfig["records_without_userid"]}"; $conf[] = "long_url {$SargConfig["long_url"]}"; $conf[] = "lastlog {$SargConfig["lastlog"]}"; $conf[] = "index yes"; $conf[] = "index_tree file"; $conf[] = "overwrite_report yes"; $conf[] = "mail_utility mail"; $conf[] = "hostalias /etc/squid3/sarg-aliases"; $conf[] = "exclude_codes /etc/squid3/sarg-exclude_codes"; $conf[] = "temporary_dir /tmp"; $conf[] = "date_time_by bytes"; $conf[] = "show_sarg_info no"; $conf[] = "show_sarg_logo no"; $conf[] = "external_css_file /sarg.css"; $conf[] = "ulimit none"; $conf[] = "squid24 off"; $conf[] = "output_dir {$SargOutputDir}"; $conf[] = "logo_image /logo.gif"; $conf[] = "image_size 160 58"; $conf[] = "access_log /var/log/squid/access.log"; $conf[] = "realtime_access_log_lines 5000"; $conf[] = "graph_days_bytes_bar_color orange"; $conf[] = ""; add_defaults(); $q = new mysql_squid_builder(); $sql = "SELECT * FROM sarg_aliases ORDER BY `pattern`"; $results = $q->QUERY_SQL($sql); $a = array(); while ($ligne = mysql_fetch_assoc($results)) { $zline = "{$ligne["pattern"]}"; if ($ligne["group"] != null) { $zline = $zline . " {$ligne["group"]}"; } if (trim($ligne["replace"] == null)) { $ligne["replace"] = str_replace("*.", "", $ligne["pattern"]); $zline = $zline . ": {$ligne["replace"]}"; } $a[] = $zline; } file_put_contents("/etc/squid3/sarg-aliases", @implode("\n", $a)); file_put_contents("/etc/squid3/sarg.conf", @implode("\n", $conf)); file_put_contents("/etc/squid3/sarg-configured-1.8.012202.conf", @implode("\n", $conf)); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, sarg.conf done\n"; events("/etc/squid3/sarg.conf done"); $ips = array(); $ips[] = "127.0.0.1"; $excluescodes[] = "NONE/400"; $excluescodes[] = "NONE/411"; $excluescodes[] = "TCP_DENIED/407"; $excluescodes[] = "TCP_DENIED/403"; $excluescodes[] = "TCP_DENIED/400"; $excluescodes[] = "TCP_DENIED/401"; $excluescodes[] = "TCP_DENIED/411"; $excluescodes[] = "TCP_MEM_HIT/200"; $excluescodes[] = "TCP_MEM_HIT/302"; $excluescodes[] = "TCP_REFRESH_HIT/200"; $excluescodes[] = "TCP_REFRESH_HIT/304"; $excluescodes[] = "TCP_NEGATIVE_HIT/404"; $excluescodes[] = "TCP_IMS_HIT/304"; $excluescodes[] = "TCP_IMS_HIT/200"; $excluescodes[] = "TCP_HIT/200"; $excluescodes[] = "TCP_HIT/302"; @file_put_contents("/etc/squid3/sarg-exclude_codes", @implode("\n", $excluescodes)); @file_put_contents("/etc/squid3/sarg.hosts", @implode("\n", $ips)); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, sarg.hosts done\n"; // $sock=new sockets();$SargOutputDir=$sock->GET_INFO("SargOutputDir");if($SargOutputDir==null){$SargOutputDir="/usr/share/artica-postfix/squid";} $unix = new unix(); $lighttpd_user = $unix->APACHE_SRC_ACCOUNT(); $squidbin = $unix->LOCATE_SQUID_BIN(); echo "Starting......: " . date("H:i:s") . " Apache user: {$lighttpd_user}\n"; @chown("{$SargOutputDir}/sarg.css", $lighttpd_user); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, sarg.css done\n"; $nice = EXEC_NICE(); $unix = new unix(); $sarg_bin = $unix->find_program("sarg"); $squidbin = $unix->find_program("squid"); $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); if (!is_file($squidbin)) { $squidbin = $unix->find_program("squid3"); } if (!is_file($sarg_bin)) { sarg_admin_events("Fatal, unable to locate sarg binary, aborting...", __FUNCTION__, __FILE__, __LINE__, "sarg"); return; } unset($f); $f[] = "#!/bin/sh"; $f[] = "export LC_ALL=C"; $f[] = "{$nice} {$php5} " . __FILE__ . " --exec-daily >/dev/null 2>&1"; $f[] = ""; @file_put_contents("/etc/cron.daily/0sarg.sh", @implode("\n", $f)); @chmod("/etc/cron.daily/0sarg.sh", 0755); events("cron.daily done"); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, cron cron.daily done\n"; unset($f); $f[] = "#!/bin/sh"; $f[] = "export LC_ALL=C"; $f[] = "{$nice} {$php5} " . __FILE__ . " --exec-hourly >/dev/null 2>&1"; $f[] = ""; @file_put_contents("/etc/cron.hourly/0sarg.sh", @implode("\n", $f)); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, cron cron.hourly done\n"; @chmod("/etc/cron.hourly/0sarg.sh", 0755); events("cron.hourly done"); unset($f); $f[] = "#!/bin/sh"; $f[] = "export LC_ALL=C"; $f[] = "{$nice} {$php5} " . __FILE__ . " --exec-monthly >/dev/null 2>&1"; $f[] = ""; @file_put_contents("/etc/cron.monthly/0sarg.sh", @implode("\n", $f)); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, cron cron.monthly done\n"; @chmod("/etc/cron.monthly/sarg.sh", 0755); events("cron.monthly done"); unset($f); $f[] = "#!/bin/sh"; $f[] = "export LC_ALL=C"; $f[] = "{$nice} {$php5} " . __FILE__ . " --exec-weekly >/dev/null 2>&1"; $f[] = ""; @file_put_contents("/etc/cron.weekly/0sarg.sh", @implode("\n", $f)); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, cron cron.weekly done\n"; @chmod("/etc/cron.weekly/0sarg.sh", 0755); events("cron.weekly done"); unset($f); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, " . __FUNCTION__ . " done\n"; }
function list_items() { $tpl = new templates(); $MyPage = CurrentPageName(); $q = new mysql_squid_builder(); $t = $_GET["t"]; $search = '%'; $table = "sarg_aliases"; if ($q->COUNT_ROWS("sarg_aliases") == 0) { add_defaults(); } $page = 1; $FORCE_FILTER = null; $total = 0; if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } $searchstring = string_to_flexquery(); if ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE 1 {$FORCE_FILTER} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS("sarg_aliases"); } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; if (is_numeric($rp)) { $limitSql = "LIMIT {$pageStart}, {$rp}"; } $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$FORCE_FILTER} {$ORDER} {$limitSql}"; $results = $q->QUERY_SQL($sql); $no_rule = $tpl->_ENGINE_parse_body("{no data}"); $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); if (!$q->ok) { if (strpos($q->mysql_error, "doesn't exist") > 0) { $q->CheckTables(); $results = $q->QUERY_SQL($sql); } } if (!$q->ok) { json_error_show($q->mysql_error . "<br>{$sql}"); } if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $fontsize = "16"; while ($ligne = mysql_fetch_assoc($results)) { $color = "black"; $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?delete-alias-js=yes&ID={$ligne["ID"]}&t={$t}&tt={$_GET["tt"]}')"); $editjs = "<a href=\"javascript:blur();\"\n\t\tOnClick=\"javascript:Loadjs('{$MyPage}?alias-js=yes&ID={$ligne["ID"]}&t={$_GET["t"]}',true);\"\n\t\tstyle='font-size:{$fontsize}px;font-weight:bold;color:{$color};text-decoration:underline'>"; $pattern = $ligne["pattern"]; $group = $ligne["group"]; $replace = $ligne["replace"]; $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<span style='font-size:{$fontsize}px;font-weight:bold;color:{$color}'>{$editjs}{$pattern}</a><br><i style='font-size:12px'> {$grouptype}</i></span>", "<span style='font-size:{$fontsize}px;font-weight:normal;color:{$color}'>{$group}</span>", "<span style='font-size:{$fontsize}px;font-weight:normal;color:{$color}'>{$replace}</span>", "<span style='font-size:{$fontsize}px;font-weight:normal;color:{$color}'>{$delete}</span>")); } echo json_encode($data); }