function source_delete()
{
    $q = new mysql_squid_builder();
    $reverse = new nginx_sources();
    $reverse->DeleteSource($_POST["source-delete"]);
}
示例#2
0
function import_bulk()
{
    $q = new mysql_squid_builder();
    $nginxSources = new nginx_sources();
    $nginx = new nginx();
    $filename = "/usr/share/artica-postfix/ressources/logs/web/nginx.importbulk";
    if (!is_file($filename)) {
        echo "{$filename} no such file\n";
        return;
    }
    $CONF = unserialize(@file_get_contents($filename));
    if ($CONF["RemoveOldImports"] == 1) {
        // on supprime les anciennes entrées:
        $results = $q->QUERY_SQL("SELECT ID FROM reverse_sources WHERE `Imported`=1");
        while ($ligne = mysql_fetch_assoc($results)) {
            $nginxSources->DeleteSource($ligne["ID"]);
        }
        $results = $q->QUERY_SQL("SELECT servername FROM reverse_www WHERE `Imported`=1");
        while ($ligne = mysql_fetch_assoc($results)) {
            $nginx->Delete_website($ligne["servername"], true);
        }
    }
    $randomArray[1] = "a";
    $randomArray[2] = "b";
    $randomArray[3] = "c";
    $randomArray[4] = "d";
    $randomArray[5] = "e";
    $randomArray[6] = "f";
    $randomArray[7] = "g";
    $randomArray[8] = "h";
    $randomArray[9] = "i";
    $randomArray[10] = "j";
    $randomArray[11] = "k";
    $randomArray[12] = "l";
    $randomArray[13] = "m";
    $randomArray[14] = "n";
    $randomArray[15] = "o";
    $randomArray[16] = "p";
    $randomArray[17] = "q";
    $randomArray[18] = "r";
    $randomArray[19] = "s";
    $randomArray[20] = "t";
    $randomArray[21] = "u";
    $randomArray[22] = "v";
    $randomArray[23] = "x";
    $randomArray[24] = "y";
    $randomArray[25] = "z";
    $RandomText = $CONF["RandomText"];
    $digitAdd = 0;
    $webauth = null;
    $authentication_id = $CONF["authentication"];
    if (!is_numeric($authentication_id)) {
        $authentication_id = 0;
    }
    if ($authentication_id > 0) {
        $AUTHENTICATOR["USE_AUTHENTICATOR"] = 1;
        $AUTHENTICATOR["AUTHENTICATOR_RULEID"] = $authentication_id;
        $webauth = mysql_escape_string2(base64_encode(serialize($AUTHENTICATOR)));
    }
    if (preg_match("#\\%sx([0-9]+)#", $RandomText, $re)) {
        $digitAdd = intval($re[1]);
        $RandomText = str_replace("%sx{$re[1]}", "%s", $RandomText);
    }
    echo "Random: {$RandomText}\n";
    // on parse le fichier en première passe pour le cleaner
    $f = explode("\n", $CONF["import"]);
    while (list($index, $line) = each($f)) {
        $line = trim(strtolower($line));
        if ($line == null) {
            continue;
        }
        if (preg_match("#^http.*?:\\/#", $line)) {
            // c'est une URI, on la décompose
            $URZ = parse_url($line);
            if (!isset($URZ["host"])) {
                echo "{$line} -> Unable to determine HOST, skipping\n";
            }
            $MAIN[$URZ["host"]] = $URZ["scheme"];
            continue;
        }
        $MAIN[$line] = "http";
    }
    ksort($MAIN);
    $i = 1;
    $Letter = 1;
    $IpClass = new IP();
    $SUCCESS = 0;
    $FAILED = 0;
    while (list($servername, $proto) = each($MAIN)) {
        $LetterText = $randomArray[$Letter];
        $iText = $i;
        $ssl = 0;
        if ($digitAdd > 0) {
            $iText = sprintf("%1\$0{$digitAdd}d", $i);
        }
        $SourceWeb = $RandomText;
        if ($SourceWeb != null) {
            $SourceWeb = str_replace("%a", $LetterText, $SourceWeb);
            $SourceWeb = str_replace("%s", $iText, $SourceWeb);
        } else {
            $SourceWeb = $servername;
        }
        $sourceserver = "{$proto}://{$servername}";
        echo "{$proto}://{$servername}\n";
        if ($proto == "http") {
            $sourceserver_port = 80;
        }
        if ($proto == "https") {
            $sourceserver_port = 443;
            $ssl = 1;
        }
        if (preg_match("#(.+?):([0-9]+)#", $servername, $re)) {
            $sourceserver_port = $re[1];
        }
        //existe-t-il ?
        $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT ID FROM reverse_sources WHERE ipaddr='{$sourceserver}' AND `port`='{$sourceserver_port}'"));
        $IDS = intval($ligne["ID"]);
        if ($IDS == 0) {
            //non -> Ajout de l'entrée...
            $sql = "INSERT IGNORE INTO `reverse_sources` \n\t\t\t(`servername`,`ipaddr`,`port`,`ssl`,`enabled`,`forceddomain`,`Imported`)\n\t\t\tVALUES ('{$servername}','{$sourceserver}','{$sourceserver_port}','{$ssl}',1,'{$servername}',1)";
            $q->QUERY_SQL($sql);
            $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT ID FROM reverse_sources WHERE ipaddr='{$sourceserver}' AND `port`='{$sourceserver_port}'"));
            $IDS = intval($ligne["ID"]);
        }
        if ($IDS == 0) {
            echo "Failed to add {$sourceserver}/{$sourceserver_port}/{$servername}\n";
            $FAILED++;
            continue;
        }
        // On attaque  le site web:
        $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT servername,cache_peer_id FROM reverse_www WHERE servername='{$SourceWeb}'"));
        if (trim($ligne["servername"] != null)) {
            echo "{$SourceWeb} already exists on cache ID : {$ligne["cache_peer_id"]}/{$IDS}\n";
            if ($ligne["cache_peer_id"] != $IDS) {
                $q->QUERY_SQL("UPDATE reverse_www SET `cache_peer_id`={$IDS} WHERE  servername='{$SourceWeb}'");
            }
            $SUCCESS++;
            continue;
        }
        $sql = "INSERT IGNORE INTO `reverse_www` (`servername`,`cache_peer_id`,`port`,`ssl`,`Imported`,`webauth`) VALUES\n\t\t('{$SourceWeb}','{$IDS}','{$sourceserver_port}','{$ssl}',1,'{$webauth}')";
        $q->QUERY_SQL($sql);
        if (!$q->ok) {
            echo $q->mysql_error;
            $FAILED++;
            continue;
        }
        $SUCCESS++;
        $i++;
        $Letter++;
        if ($Letter > 25) {
            $Letter = 1;
        }
    }
    echo "{$SUCCESS} Imported sites, {$FAILED} failed\n";
}
示例#3
0
function delete_destination()
{
    $q = new mysql_squid_builder();
    $reverse = new nginx_sources();
    $reverse->DeleteSource($_POST["delete-destination"]);
}