Пример #1
0
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();
Пример #2
0
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();
    }
}