Source code of /package/share/maintenance/whois-ping/showerrors

Last modified: 2016-01-25 01:07:37

Download

#!/usr/bin/php
<?php

#
#  generic Whois - Whois Server Ping Testing Suite
#
#  (c) 2013-2014 Daniel Marschall, ViaThinkSoft [www.viathinksoft.de]
#
#  Distribution, usage etc. pp. regulated by the current version of GPL.
#
#
#  Version 2014-09-12
#

error_reporting(E_ALL E_NOTICE E_STRICT E_DEPRECATED);

require_once 
__DIR__ '/../../includes/common_functions.inc.php';
require_once 
__DIR__ '/whoisping_functions.inc.php';
require_once 
__DIR__ '/config.inc.php';

$db = new SQLite3('/var/cache/gwhois/maintenance/whois-server-ping/whoisping.db'); # TODO: in config auslagern
if (!$db) die ($error);

gwitc_initdb($db);

/*
$stm = "SELECT * FROM gwi_tc_whois_ping WHERE server = 'whois.nic.ve'";
$result = $db->query("SELECT * FROM gwi_tc_whois_ping WHERE server = 'whois.nic.ve'");
$row = $result->fetchArray(SQLITE3_ASSOC);
print_r($row);
*/

$status=0;

$pattern_servers = array();
$pattern_files getpatternfiles();
foreach (
$pattern_files as &$pattern_file) {
    
$pattern_servers_c gwitc_list_whois_servers($pattern_file);
    
$pattern_servers array_merge($pattern_servers$pattern_servers_c);
}

$dead_servers = array();
$dead_servers_raw file('/etc/gwhois/maintenance/dead-servers.list');
foreach (
$dead_servers_raw as &$server) {
    
$server trim($server);
    if (
$server == '') continue;
    if (
$server[0] == '#') continue;

    
$dead_servers[] = $server;
}

# $servers = $dead_servers + $pattern_servers
$servers = array();
foreach (
$pattern_servers as &$server) {
    if (!
in_array($server$servers)) {
        
$servers[] = $server;
    }
}
foreach (
$dead_servers as &$server) {
    if (!
in_array($server$servers)) {
        
$servers[] = $server;
    } else {
        if (
in_array($server$dead_servers)) {
            
$status=1;
            echo 
"[ !! ] Attention! $server is in dead-servers.list and pattern. Please remove one instance!\n";
        }
    }
}

foreach (
$servers as &$server) {
    
$reborn gwitc_reborn_val($db$server);
    if (
$reborn) {  // TODO: also show time since when it is reborn?
        
if (in_array($server$dead_servers)) {
            
$status=1;
            echo 
"[ !! ] Attention: $server is ALIVE again! Please remove from dead-servers.list and add to pattern.\n";
        }

        if (
in_array($server$pattern_servers) && (!in_array($server$dead_servers))) {
            
gwitc_set_reborn($db$server0);
        }
    } else {
        if (
in_array($server$dead_servers) && (!in_array($server$pattern_servers))) continue;

        
$duration gwitc_fail_duration($db$server);
        if (
$duration WHOIS_SERVER_DEAD_AFTER) continue;
        
$status=1;
        echo 
"[ !! ] $server down for ".human_timediff($duration)."; first fail: ".date('Y-m-d'gwitc_first_fail($db$server))."\n";
    }
}

$db->close();

if (
$status == 0) {
    echo 
"[ OK ]\n";
}

exit(
$status);