function RefreshIndex() { $unix = new unix(); $nice = EXEC_NICE(); $sock = new sockets(); $users = new usersMenus(); $nohup = $unix->find_program("nohup"); $php = $unix->LOCATE_PHP5_BIN(); $wget = $unix->find_program("wget"); $SYSTEMID = $unix->GetUniqueID(); if ($SYSTEMID == null) { build_progress("System ID is Null !!!", 5); return; } build_progress("Register server...", 10); shell_exec("{$nohup} {$nice} {$php} /usr/share/artica-postfix/exec.web-community-filter.php --register-lic >/dev/null 2>&1 &"); if ($SYSTEMID == null) { build_progress("No system ID, force", 15); shell_exec("{$nice} /usr/share/artica-postfix/bin/artica-update -refresh-index --force >/dev/null 2>&1"); return; } $xMEM_TOTAL_INSTALLEE = $users->MEM_TOTAL_INSTALLEE; $CPU_NUMBER = $users->CPU_NUMBER; $LinuxDistributionFullName = $users->LinuxDistriFullName; if ($LinuxDistributionFullName == null) { $LinuxDistributionFullName = "Linux Default"; } $ARTICA_VERSION = GetCurrentVersion(); $hostname = $unix->hostname_g(); $CheckUserCount = CheckUserCount(); $dmidecode = @file_get_contents("/etc/artica-postfix/dmidecode.cache.url"); $uriplus = "{$SYSTEMID};{$xMEM_TOTAL_INSTALLEE};{$CPU_NUMBER};{$LinuxDistributionFullName};{$ARTICA_VERSION};{$hostname};{$CheckUserCount};{$dmidecode}"; $uriplus = urlencode($uriplus); @unlink($GLOBALS["MasterIndexFile"]); $tarballs_file = "/usr/share/artica-postfix/ressources/logs/web/tarballs.cache"; echo "Starting......: " . date("H:i:s") . " CPU NUMBER: {$CPU_NUMBER}\n"; echo "Starting......: " . date("H:i:s") . " Hostname..: {$hostname}\n"; echo "Starting......: " . date("H:i:s") . " Artica ver: {$ARTICA_VERSION}\n"; echo "Starting......: " . date("H:i:s") . " Users.....: {$CheckUserCount}\n"; build_progress("Configuration done", 15); $ini = new iniFrameWork(); $ini->loadFile('/etc/artica-postfix/artica-update.conf'); if (trim($ini->_params["AUTOUPDATE"]["uri"]) == null) { $ini->_params["AUTOUPDATE"]["uri"] = "http://www.articatech.net/auto.update.php"; } if (!isset($ini->_params["AUTOUPDATE"]["enabled"])) { $ini->_params["AUTOUPDATE"]["enabled"] = "yes"; } if ($ini->_params["AUTOUPDATE"]["enabled"] == null) { $ini->_params["AUTOUPDATE"]["enabled"] = "yes"; } if (!is_numeric(trim($ini->_params["AUTOUPDATE"]["CheckEveryMinutes"]))) { $ini->_params["AUTOUPDATE"]["CheckEveryMinutes"] = 60; } $uri = $ini->_params["AUTOUPDATE"]["uri"]; $arrayURI = parse_url($uri); build_progress("Check repositories", 20); $MAIN_URI = $unix->MAIN_URI(); echo "Starting......: " . date("H:i:s") . " Main URI..: {$MAIN_URI}\n"; $md5string = @md5_file($GLOBALS["MasterIndexFile"]); build_progress("Get TarBalls...", 25); echo "Starting......: " . date("H:i:s") . " Update tarballs..\n"; $curl = new ccurl("{$MAIN_URI}/tarballs.php?time=" . time()); @unlink($tarballs_file); $curl->NoHTTP_POST = true; if (!$curl->GetFile($tarballs_file)) { build_progress("Get TarBalls !! FAILED !!", 30); _artica_update_event(0, "Unable to download tarballs file with error {$curl->error_num}, {$curl->error}", null, __FILE__, __LINE__); @unlink($tarballs_file); } build_progress("Ping repositories...", 35); @chmod($tarballs_file, 0755); echo "Starting......: " . date("H:i:s") . " dmidecode = " . strlen($dmidecode) . " bytes\n"; echo "Starting......: " . date("H:i:s") . " Updating repository information..\n"; $curl = new ccurl("{$MAIN_URI}/routers.inject.php?time=" . time()); $curl->NoHTTP_POST = true; $curl->get(); build_progress("Retreive index from repository", 40); $curl = new ccurl("{$uri}?time=" . time() . "&datas={$uriplus}"); $curl->NoHTTP_POST = true; $curl->forceCache = true; echo "Starting......: " . date("H:i:s") . " Downloading collection using Interface: `{$curl->interface}`\n"; echo "Starting......: " . date("H:i:s") . " Using \"{$GLOBALS["MasterIndexFile"]}\"\n"; echo "Starting......: " . date("H:i:s") . " Timeout set to \"{$curl->Timeout}s\"\n"; if (!$curl->GetFile($GLOBALS["MasterIndexFile"])) { build_progress("Retreive index from repository !! FAILED !!", 100); if (!$GLOBALS["NOT_FORCE_PROXY"]) { echo "Starting......: " . date("H:i:s") . " FATAL: Unable to download index file, try in direct mode\n"; $GLOBALS["NOT_FORCE_PROXY"] = true; return RefreshIndex(); } echo "Starting......: " . date("H:i:s") . " FATAL: {$GLOBALS["MasterIndexFile"]} " . @filesize($GLOBALS["MasterIndexFile"]) . " bytes\n"; echo "Starting......: " . date("H:i:s") . " FATAL: Unable to download index file with error {$curl->error_num}, {$curl->error}\n"; _artica_update_event(0, "Unable to download index file with error {$curl->error_num}, {$curl->error}", null, __FILE__, __LINE__); exec("{$nice} /usr/share/artica-postfix/bin/artica-update -refresh-index 2>&1", $results); while (list($num, $ligne) = each($dirs)) { echo "Starting......: " . date("H:i:s") . " {$ligne}\n"; } return; } build_progress("Retreive index from repository !! Success !!", 100); $md5string2 = md5_file($GLOBALS["MasterIndexFile"]); echo "Starting......: " . date("H:i:s") . " source: `{$md5string}` new: `{$md5string2}`\n"; echo "Starting......: " . date("H:i:s") . " Success...\n"; return true; }
function RefreshIndex() { $unix = new unix(); $nice = EXEC_NICE(); $sock = new sockets(); $users = new usersMenus(); $nohup = $unix->find_program("nohup"); $php = $unix->LOCATE_PHP5_BIN(); $wget = $unix->find_program("wget"); $SYSTEMID = $unix->GetUniqueID(); if ($SYSTEMID == null) { build_progress("System ID is Null !!!", 5); return; } build_progress_index("Register server...", 10); build_progress("Register server...", 10); shell_exec("{$nohup} {$nice} {$php} /usr/share/artica-postfix/exec.web-community-filter.php --register-lic >/dev/null 2>&1 &"); if ($SYSTEMID == null) { build_progress_index("No system ID, force...", 15); build_progress("No system ID, force", 15); shell_exec("{$nice} /usr/share/artica-postfix/bin/artica-update -refresh-index --force >/dev/null 2>&1"); return; } $xMEM_TOTAL_INSTALLEE = $users->MEM_TOTAL_INSTALLEE; $CPU_NUMBER = $users->CPU_NUMBER; $LinuxDistributionFullName = $users->LinuxDistriFullName; if ($LinuxDistributionFullName == null) { $LinuxDistributionFullName = "Linux Default"; } $ARTICA_VERSION = GetCurrentVersion(); $hostname = $unix->hostname_g(); $CheckUserCount = CheckUserCount(); $RebootAfterArticaUpgrade = $sock->GET_INFO("RebootAfterArticaUpgrade"); if (!is_numeric($RebootAfterArticaUpgrade)) { $RebootAfterArticaUpgrade = 0; } $EnableScheduleUpdates = $sock->GET_INFO("EnableScheduleUpdates"); $ArticaUpdateIntervalAllways = intval($sock->GET_INFO("EnableScheduleUpdates")); if (!is_numeric($EnableScheduleUpdates)) { $EnableScheduleUpdates = 0; } $ArticaAutoUpateOfficial = $sock->GET_INFO("ArticaAutoUpateOfficial"); $ArticaAutoUpateNightly = intval($sock->GET_INFO("ArticaAutoUpateNightly")); $ArticaUpdateIntervalAllways = intval($sock->GET_INFO("ArticaUpdateIntervalAllways")); $OfficialArticaUri = $sock->GET_INFO("OfficialArticaUri"); if (!is_numeric($ArticaAutoUpateOfficial)) { $ArticaAutoUpateOfficial = 1; } if ($OfficialArticaUri == null) { $OfficialArticaUri = "http://articatech.net/artica.update.php"; } $uri = $OfficialArticaUri; $dmidecode = @file_get_contents("/etc/artica-postfix/dmidecode.cache.url"); @unlink($GLOBALS["MasterIndexFile"]); $tarballs_file = "/usr/share/artica-postfix/ressources/logs/web/tarballs.cache"; echo "Starting......: " . date("H:i:s") . " CPU NUMBER: {$CPU_NUMBER}\n"; echo "Starting......: " . date("H:i:s") . " Hostname..: {$hostname}\n"; echo "Starting......: " . date("H:i:s") . " Artica ver: {$ARTICA_VERSION}\n"; echo "Starting......: " . date("H:i:s") . " Users.....: {$CheckUserCount}\n"; build_progress_index("Configuration done...", 15); build_progress("Configuration done", 15); $DATA["UUID"] = $SYSTEMID; $DATA["MEM"] = $xMEM_TOTAL_INSTALLEE; $DATA["CPU"] = $CPU_NUMBER; $DATA["LINUX"] = $LinuxDistributionFullName; $DATA["VERSION"] = $ARTICA_VERSION; $DATA["HOSTNAME"] = $hostname; $DATA["USERS"] = $CheckUserCount; $DATA["DMICODE"] = $dmidecode; build_progress_index("Check repositories...", 20); build_progress("Check repositories", 20); $MAIN_URI = $unix->MAIN_URI(); echo "Starting......: " . date("H:i:s") . " Main URI..: {$MAIN_URI}\n"; $md5string = @md5_file($GLOBALS["MasterIndexFile"]); build_progress_index("Get Index...", 25); build_progress("Get Index...", 25); echo "Starting......: " . date("H:i:s") . " Update index file..\n"; $curl = new ccurl($OfficialArticaUri); $curl->parms["datas"] = base64_encode(serialize($DATA)); if (!$curl->get()) { echo "Last detected error: {$curl->error}\n"; build_progress_index("Get Index...{failed}", 110); build_progress("Get Index file !! FAILED !!", 110); _artica_update_event(0, "Unable to download index file with error {$curl->error_num}, {$curl->error}", null, __FILE__, __LINE__); return false; } @unlink("/etc/artica-postfix/settings/Daemons/ArticaUpdateRepos"); build_progress_index("Parse Index from repository", 40); build_progress("Parse Index from repository", 40); if (preg_match("#<ERROR>(.+?)</ERROR>#is", $curl->data, $re)) { echo "{$re[1]} !! FAILED !!\n"; build_progress_index("Corrupted index from repository !! FAILED !!", 110); build_progress("Corrupted index from repository !! FAILED !!", 110); return; } if (!preg_match("#<CONTENT>(.+?)</CONTENT>#is", $curl->data, $re)) { echo "Corrupted index from repository !! FAILED !!\n"; build_progress_index("Corrupted index from repository !! FAILED !!", 110); build_progress("Corrupted index from repository !! FAILED !!", 110); return; } $MAIN = unserialize(base64_decode($re[1])); if (!is_array($MAIN)) { echo "It is not an array...\n"; build_progress_index("Corrupted index from repository !! FAILED !!", 110); build_progress("Corrupted index from repository !! FAILED !!", 110); } build_progress_index("Retreive index from repository success", 100); @file_put_contents("/etc/artica-postfix/settings/Daemons/ArticaUpdateRepos", serialize($MAIN)); return true; }