#!/usr/bin/php

include_once("/home/cacert/www/includes/mysql.php");

$query = "select id,domain,hash from `domains` where hash!='' and deleted=0";
$res = mysql_query($query);

while($row = mysql_fetch_assoc($res)) {
	$dom = $row['domain'];
	$hash = $row['hash'];
	$id = $row['id'];
	if ($dom && preg_match("/^([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$dom) && $hash)
	{
		$hash = sha1($hash);
		if (matchTXT($dom,$hash)) { update($id);  continue; }
		if (matchWWW($dom,$hash)) { update($id);  continue; }
		if (matchWHOIS($dom,$hash)) { update($id);  continue; }
	}

}
exit;

function matchTXT($dom,$hash)
{
	$line = trim(`dig +short TXT $dom 2>&1`);
	if ($line)
	{
		$list = explode("\n", $line);
                foreach($list as $r)
		{
			if ( $r == "\"$hash\"" ) {
				return TRUE;
			}
		}
	}
	return FALSE;
}

function matchWWW($dom,$hash)
{
	$list = array(	"http://$dom/cacert.txt",
			"https://$dom/cacert.txt",
			"http://www.$dom/cacert.txt",
			"httpis://$dom/cacert.txt");
	foreach ($list as $url)
	{
		$lines = trim(`wget --tries=1 --max-redirect=1 --quiet --read-timeout=4 -O - $url | head -c 100`);
		$res = explode("\n",$lines);
		foreach ($res as $o)
		{
			if (preg_match("/$hash/",$o) return TRUE;
		}
		
	}
	return FALSE;
}

function matchWHOIS($dom,$hash)
{
	$line = trim(`whois $domain`);
	$list = explode("\n", $line);
	foreach($list as $r)
	{
		if (preg_match("/$hash/",$r) return TRUE;
	}
	return FALSE;
}

function update($id)
{
	$query="update `domains` set `hash`='',`modified`=NOW() where `id`='$row['$id']' LIMIT 1";
	mysql_query($query);
}
