function cron_compile()
{
    $users = new usersMenus();
    if (!$users->APP_UFDBGUARD_INSTALLED) {
        return;
    }
    $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
    $unix = new unix();
    $restart = false;
    if ($unix->process_exists(@file_get_contents($pidfile))) {
        return;
    }
    if (is_file("/etc/artica-postfix/ufdbguard.compile.alldbs")) {
        @unlink("/etc/artica-postfix/ufdbguard.compile.alldbs");
        events_ufdb_exec("CRON:: -> ufdbguard_recompile_dbs()");
        ufdbguard_recompile_dbs();
        return;
    }
    if (is_file("/etc/artica-postfix/ufdbguard.compile.missing.alldbs")) {
        events_ufdb_exec("CRON:: -> ufdbguard_recompile_missing_dbs()");
        @unlink("/etc/artica-postfix/ufdbguard.compile.missing.alldbs");
        ufdbguard_recompile_missing_dbs();
        return;
    }
    if (is_file("/etc/artica-postfix/ufdbguard.reconfigure.task")) {
        events_ufdb_exec("CRON:: -> build()");
        @unlink("/etc/artica-postfix/ufdbguard.reconfigure.task");
        build();
        return;
    }
    foreach (glob("/etc/artica-postfix/ufdbguard.recompile-queue/*") as $filename) {
        $restart = true;
        $db = @file_get_contents($filename);
        @unlink($filename);
        UFDBGUARD_COMPILE_SINGLE_DB("/var/lib/squidguard/{$db}/domains");
    }
    if ($restart) {
        shell_exec("/etc/init.d/ufdb reload");
    }
}
示例#2
0
function cron_compile()
{
    $sock = new sockets();
    $EnableWebProxyStatsAppliance = $sock->GET_INFO("EnableWebProxyStatsAppliance");
    $EnableRemoteStatisticsAppliance = $sock->GET_INFO("EnableRemoteStatisticsAppliance");
    $isFiltersInstalled = false;
    $trace = debug_backtrace();
    if (isset($trace[1])) {
        $called = " called by " . basename($trace[1]["file"]) . " {$trace[1]["function"]}() line {$trace[1]["line"]}";
    }
    if (!is_numeric($EnableWebProxyStatsAppliance)) {
        $EnableWebProxyStatsAppliance = 0;
    }
    if (!is_numeric($EnableRemoteStatisticsAppliance)) {
        $EnableRemoteStatisticsAppliance = 0;
    }
    if ($EnableRemoteStatisticsAppliance == 1) {
        return;
    }
    $users = new usersMenus();
    if ($users->APP_UFDBGUARD_INSTALLED) {
        $isFiltersInstalled = true;
    }
    if ($users->DANSGUARDIAN_INSTALLED) {
        $isFiltersInstalled = true;
    }
    if ($EnableWebProxyStatsAppliance == 0) {
        if (!$isFiltersInstalled) {
            return;
        }
    }
    $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
    $unix = new unix();
    $restart = false;
    if ($unix->process_exists(@file_get_contents($pidfile))) {
        return;
    }
    @file_put_contents($pidfile, getmypid());
    if (is_file("/etc/artica-postfix/ufdbguard.compile.alldbs")) {
        $WHY = "ufdbguard.compile.alldbs exists";
        @unlink("/etc/artica-postfix/ufdbguard.compile.alldbs");
        events_ufdb_exec("CRON:: -> ufdbguard_recompile_dbs()");
        ufdbguard_admin_events("-> ufdbguard_recompile_dbs()", __FUNCTION__, __FILE__, __LINE__, "config");
        UFDBGUARD_COMPILE_ALL_CATEGORIES();
        return;
    }
    if (is_file("/etc/artica-postfix/ufdbguard.compile.missing.alldbs")) {
        $WHY = "ufdbguard.compile.missing.alldbs exists";
        events_ufdb_exec("CRON:: -> ufdbguard_recompile_missing_dbs()");
        @unlink("/etc/artica-postfix/ufdbguard.compile.missing.alldbs");
        ufdbguard_admin_events("-> ufdbguard_recompile_missing_dbs()", __FUNCTION__, __FILE__, __LINE__, "config");
        ufdbguard_recompile_missing_dbs();
        return;
    }
    if (is_file("/etc/artica-postfix/ufdbguard.reconfigure.task")) {
        $WHY = "ufdbguard.reconfigure.task exists";
        events_ufdb_exec("CRON:: -> build()");
        @unlink("/etc/artica-postfix/ufdbguard.reconfigure.task");
        ufdbguard_admin_events("-> build()", __FUNCTION__, __FILE__, __LINE__, "config");
        build();
        return;
    }
    foreach (glob("/etc/artica-postfix/ufdbguard.recompile-queue/*") as $filename) {
        $restart = true;
        $db = @file_get_contents($filename);
        @unlink($filename);
        ufdbguard_admin_events("-> UFDBGUARD_COMPILE_SINGLE_DB(/var/lib/squidguard/{$db}/domains)", __FUNCTION__, __FILE__, __LINE__, "config");
        UFDBGUARD_COMPILE_SINGLE_DB("/var/lib/squidguard/{$db}/domains");
    }
    if ($restart) {
        $unix->send_email_events("cron-compile: Ask to reload ufdbguard service", "\n{$WHY}\nFunction:" . __FUNCTION__ . "\nFile:" . __FILE__ . "\nLine:" . __LINE__, "proxy");
        ufdbguard_admin_events("Service will be reloaded", __FUNCTION__, __FILE__, __LINE__, "ufdbguard-service");
        build_ufdbguard_HUP();
    }
}