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"); } }
function UFDBGUARD_DOWNLOAD_ALL_CATEGORIES() { include_once dirname(__FILE__) . "/ressources/class.ccurl.inc"; $unix = new unix(); $sock = new sockets(); $tar = $unix->find_program("tar"); $rm = $unix->find_program("rm"); $RemoteStatisticsApplianceSettings = unserialize(base64_decode($sock->GET_INFO("RemoteStatisticsApplianceSettings"))); if (!is_numeric($RemoteStatisticsApplianceSettings["SSL"])) { $RemoteStatisticsApplianceSettings["SSL"] = 1; } if (!is_numeric($RemoteStatisticsApplianceSettings["PORT"])) { $RemoteStatisticsApplianceSettings["PORT"] = 9000; } $GLOBALS["REMOTE_SSERVER"] = $RemoteStatisticsApplianceSettings["SERVER"]; $GLOBALS["REMOTE_SPORT"] = $RemoteStatisticsApplianceSettings["PORT"]; $GLOBALS["REMOTE_SSL"] = $RemoteStatisticsApplianceSettings["SSL"]; if ($GLOBALS["REMOTE_SSL"] == 1) { $refix = "https"; } else { $refix = "http"; } $uri = "{$refix}://{$GLOBALS["REMOTE_SSERVER"]}:{$GLOBALS["REMOTE_SPORT"]}/ressources/databases/blacklist.tar.gz"; $curl = new ccurl($uri, true); if (!$curl->GetFile("/tmp/blacklist.tar.gz")) { ufdbguard_admin_events("Failed to download blacklist.tar.gz aborting `{$curl->error}`", __FUNCTION__, __FILE__, __LINE__, "global-compile"); return; } $t = time(); shell_exec("{$rm} -rf /var/lib/squidguard/*"); exec("{$tar} -xf /tmp/blacklist.tar.gz -C /var/lib/squidguard/ 2>&1", $results); $ttook = $unix->distanceOfTimeInWords($t, time(), true); ufdbguard_admin_events("Extracting blacklist.tar.gz took {$ttook} `" . @implode("\n", $results), __FUNCTION__, __FILE__, __LINE__, "global-compile"); $array = $unix->dirdir("/var/lib/squidguard"); $GLOBALS["NORESTART"] = true; while (list($index, $directoryPath) = each($array)) { if (!is_file("{$directoryPath}/domains.ufdb")) { UFDBGUARD_COMPILE_SINGLE_DB("{$directoryPath}/domains"); } } build_ufdbguard_HUP(); }