if (!$usersmenus->AsAnAdministratorGeneric) { $tpl = new templates(); $alert = $tpl->_ENGINE_parse_body('{ERROR_NO_PRIVS}'); echo "alert('{$alert}');"; die; } if (isset($_POST["visible_hostname"])) { visible_hostname_save(); exit; } if (isset($_GET["visible-hostname-js"])) { visible_hostname_js(); exit; } if (isset($_POST["reconfigure-squid"])) { reconfigure_squid(); exit; } if (isset($_POST["restart-squid"])) { restart_squid(); exit; } if (isset($_POST["reconf-squid"])) { reconf_squid(); exit; } if (isset($_GET["filters-specific"])) { filters_for_node(); exit; } page();
function BuildCaches($NOTSTART = false) { echo "Starting......: " . date("H:i:s") . " Squid Check *** caches ***\n"; $squid = new squidbee(); $unix = new unix(); $SQUID_CONFIG_PATH = $unix->SQUID_CONFIG_PATH(); $unix = new unix(); $sock = new sockets(); $su_bin = $unix->find_program("su"); $chown = $unix->find_program("chown"); $chmod = $unix->find_program("chmod"); $nohup = $unix->find_program("nohup"); $TimeFileChown = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time"; $SquidBoosterMem = $sock->GET_INFO("SquidBoosterMem"); if (!is_numeric($SquidBoosterMem)) { $SquidBoosterMem = 0; } $squid_user = SquidUser(); writelogs("Using squid user: \"{$squid_user}\"", __FUNCTION__, __FILE__, __LINE__); writelogs("{$chown} cache directories...", __FUNCTION__, __FILE__, __LINE__); $unix->chown_func($squid_user, null, "/etc/squid3/*"); if (is_dir("/usr/share/squid-langpack")) { $unix->chown_func($squid_user, null, "/usr/share/squid-langpack"); } $GetCachesInsquidConf = $unix->SQUID_CACHE_FROM_SQUIDCONF(); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " Squid " . count($GetCachesInsquidConf) . " caches to check\n"; } writelogs(count($GetCachesInsquidConf) . " caches to check", __FUNCTION__, __FILE__, __LINE__); $MustBuild = false; if ($SquidBoosterMem > 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " Squid Cache booster set to {$SquidBoosterMem}Mb\n"; } @mkdir("/var/squid/cache_booster", 0755, true); @chown("/var/squid/cache_booster", "squid"); @chgrp("/var/squid/cache_booster", "squid"); if (!is_dir("/var/squid/cache_booster/00")) { echo "Starting......: " . date("H:i:s") . " Squid *** /var/squid/cache_booster/00 *** No such directory ask to rebuild caches\n"; $MustBuild = true; } } $nice = $unix->EXEC_NICE(); $rm = $unix->find_program("rm"); if (!$GLOBALS["NOCACHES"]) { $TimeFileChownTime = $unix->file_time_min($TimeFileChown); $SH[] = "#!/bin/sh"; while (list($CacheDirectory, $type) = each($GetCachesInsquidConf)) { if (trim($CacheDirectory) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " Squid Check *** {$CacheDirectory} ***\n"; } $subdir = basename($CacheDirectory); $MainDir = dirname($CacheDirectory); writelogs("Directory \"{$CacheDirectory}\" SUBDIR={$subdir} Main dir={$MainDir}", __FUNCTION__, __FILE__, __LINE__); if (isDirInFsTab($MainDir)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " Squid Check *** {$MainDir} -> Mounted ? ***\n"; } } if (!is_dir($CacheDirectory)) { echo "Starting......: " . date("H:i:s") . " Squid Check creating cache \"{$CacheDirectory}\" no such directory\n"; @mkdir($CacheDirectory, 0755, true); $MustBuild = true; } echo "Starting......: " . date("H:i:s") . " Squid Check cache \"{$CacheDirectory}\" owned by {$squid_user} (" . __LINE__ . ")\n"; build_progress("{reconfigure} Checking {$CacheDirectory}", 86); $SH[] = "{$nice} {$chown} -R {$squid_user}:{$squid_user} {$CacheDirectory}"; @chmod($CacheDirectory, 0755); } $TMPFILE = $unix->FILE_TEMP(); $SH[] = "{$rm} -f {$TMPFILE}.sh"; @file_put_contents("{$TMPFILE}.sh", @implode("\n", $SH)); @chmod("{$TMPFILE}.sh", 0755); build_progress("{reconfigure} Checking {$TMPFILE}.sh ok", 86); shell_exec("{$nohup} {$TMPFILE}.sh >/dev/null 2>&1 &"); $SH = array(); } if ($unix->file_time_min($TimeFileChown) > 120) { @unlink($TimeFileChown); @file_put_contents($TimeFileChown, time()); } if (!$GLOBALS["NOCACHES"]) { $MustBuild = false; return; } if (!$MustBuild) { if ($GLOBALS["OUTPUT"]) { caches_infos(); } echo "Starting......: " . date("H:i:s") . " Squid all caches are OK\n"; return; } if (preg_match("#(.+?):#", $squid_user, $re)) { $squid_uid = $re[1]; } else { $squid_uid = "squid"; } writelogs("Stopping squid...", __FUNCTION__, __FILE__, __LINE__); shell_exec("/etc/init.d/artica-postfix stop squid-cache"); writelogs("Building caches with user: \"{$squid_uid}\"", __FUNCTION__, __FILE__, __LINE__); writelogs("{$su_bin} {$squid_uid} -c \"{$GLOBALS["SQUIDBIN"]} -z\" 2>&1", __FUNCTION__, __FILE__, __LINE__); exec("{$su_bin} {$squid_uid} -c \"{$GLOBALS["SQUIDBIN"]} -z\" 2>&1", $results); while (list($agent, $val) = each($results)) { writelogs("{$val}", __FUNCTION__, __FILE__, __LINE__); } writelogs("Send Notifications", __FUNCTION__, __FILE__, __LINE__); send_email_events("Squid Cache: reconfigure caches", "Here it is the results\n", @implode("\n", $results), "proxy"); writelogs("Starting squid", __FUNCTION__, __FILE__, __LINE__); unset($results); if (!$NOTSTART) { reconfigure_squid(); } }