示例#1
0
function master_index()
{
    @unlink($GLOBALS["MasterIndexFile"]);
    $ini = new iniFrameWork();
    $ini->loadFile('/etc/artica-postfix/artica-update.conf');
    if (trim($ini->_params["AUTOUPDATE"]["autoinstall"]) == null) {
        $ini->_params["AUTOUPDATE"]["autoinstall"] = "yes";
    }
    if ($ini->_params["AUTOUPDATE"]["autoinstall"] != "yes") {
        $autoinstall = false;
    }
    $uri = $ini->_params["AUTOUPDATE"]["uri"];
    $arrayURI = parse_url($uri);
    $MAIN_URI = "{$arrayURI["scheme"]}://{$arrayURI["host"]}";
    echo "Starting......: " . date("H:i:s") . " Refreshing index file...\n";
    $curl = new ccurl("{$uri}?time=" . time());
    if (!$curl->GetFile($GLOBALS["MasterIndexFile"])) {
        _artica_update_event(0, "Error {$curl->error}", null, __FILE__, __LINE__);
        echo "Starting......: " . date("H:i:s") . " Error {$curl->error_num};{$curl->error}, Try direct\n";
        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 master_index();
        }
        if ($curl->error == "{CURLE_COULDNT_RESOLVE_HOST}") {
            if ($arrayURI["host"] == "www.artica.fr") {
                if (!$GLOBALS["CHANGED"]) {
                    echo "Starting......: " . date("H:i:s") . " trying www.articatech.net\n";
                    $ini->_params["AUTOUPDATE"]["uri"] = "http://www.articatech.net/auto.update.php";
                    $ini->saveFile("/etc/artica-postfix/artica-update.conf");
                    $GLOBALS["CHANGED"] = true;
                    return master_index();
                }
            }
        }
        return;
    }
    if (!is_file($GLOBALS["MasterIndexFile"])) {
        echo "Starting......: " . date("H:i:s") . " {$GLOBALS["MasterIndexFile"]} no such file...\n";
        return;
    }
    return true;
}