示例#1
0
function STATS_CNX_REJECT_parse($path)
{
    events("STATS_CNX_REJECT_parse(): Scanning {$path}");
    if ($GLOBALS["VERBOSE"]) {
        echo "Parsing {$path}\n";
    }
    $db_con = dba_open($path, "r", "db4");
    if (!$db_con) {
        echo "DB open {$path} failed\n";
        return false;
    }
    $fam = new familysite();
    $SQL1 = array();
    $mainkey = dba_firstkey($db_con);
    while ($mainkey != false) {
        if ($GLOBALS["VERBOSE"]) {
            echo "STATS_CNX_REJECT_parse: FECTH\n";
        }
        $data = dba_fetch($mainkey, $db_con);
        $ARRAY = unserialize($data);
        if (!isset($ARRAY["IPADDR"])) {
            if ($ARRAY["HOSTNAME"] == null) {
                $mainkey = dba_nextkey($db_con);
                continue;
            }
        }
        if ($ARRAY["IPADDR"] == "127.0.0.1") {
            $mainkey = dba_nextkey($db_con);
            continue;
        }
        $zmd5 = md5($data);
        $error = mysql_escape_string2($ARRAY["error"]);
        if (!isset($ARRAY["DATE"])) {
            $ARRAY["DATE"] = date("Y-m-d H:i:s", $ARRAY["TIME"]);
        }
        if ($ARRAY["DATE"] == null) {
            $ARRAY["DATE"] = date("Y-m-d H:i:s", $ARRAY["TIME"]);
        }
        if ($ARRAY["HOSTNAME"] == null) {
            if ($ARRAY["IPADDR"] == null) {
                $mainkey = dba_nextkey($db_con);
                continue;
            }
        }
        if ($ARRAY["HOSTNAME"] == null) {
            $ARRAY["HOSTNAME"] = $fam->GetComputerName($ARRAY["IPADDR"]);
        }
        $familysite = $fam->GetFamilySites($ARRAY["HOSTNAME"]);
        $SQL1[date("YmdH", $ARRAY["TIME"])][] = "('{$zmd5}','{$ARRAY["DATE"]}','{$ARRAY["HOSTNAME"]}','{$familysite}','{$ARRAY["IPADDR"]}','{$error}')";
        if ($GLOBALS["VERBOSE"]) {
            echo "('{$zmd5}','{$ARRAY["DATE"]}','{$ARRAY["HOSTNAME"]}','{$familysite}','{$ARRAY["IPADDR"]}','{$error}')\n";
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "STATS_CNX_REJECT_parse: NEXT KEY\n";
        }
        $mainkey = dba_nextkey($db_con);
    }
    if ($GLOBALS["VERBOSE"]) {
        echo "Closing {$path}\n";
    }
    dba_close($db_con);
    if (count($SQL1) > 0) {
        $q = new mysql_postfix_builder();
        while (list($TIMESTAMP, $rows) = each($SQL1)) {
            if (!$q->postfix_buildhour_failed_connections($TIMESTAMP)) {
                events("STATS_CNX_REJECT_parse(): postfix_buildhour_failed_connections({$TIMESTAMP}) return failed");
                return false;
            }
            $sql = "INSERT IGNORE INTO {$TIMESTAMP}_hfcnx (`zmd5`,`zDate`,`hostname`,`domain`,`ipaddr`,`WHY`) VALUES " . @implode(",", $rows);
            if ($GLOBALS["VERBOSE"]) {
                echo "QUERY_SQL\n";
            }
            $q->QUERY_SQL($sql);
            if (!$q->ok) {
                events("STATS_CNX_REJECT_parse(): {$q->mysql_error}");
                echo $q->mysql_error;
                return false;
            }
        }
    }
    events("STATS_CNX_REJECT_parse(): {$path} Success");
    if ($GLOBALS["VERBOSE"]) {
        echo "Parsing {$path} END\n";
    }
    return true;
}