|
|
@@ -1135,19 +1135,27 @@ function cwp7CheckA($host, $serverIP, $nameserverIP, $recurse = 0) {
|
|
|
return false;
|
|
|
}
|
|
|
$nameserver = array($nameserverIP);
|
|
|
- $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
|
|
|
+ # try NS1
|
|
|
+ $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
|
|
|
try {
|
|
|
- $result = $resolver->query($host, 'A');
|
|
|
-
|
|
|
+ $result = $resolver->query($host, 'A');
|
|
|
+ return true;
|
|
|
} catch(Net_DNS2_Exception $e) {
|
|
|
- logModuleCall(
|
|
|
- 'cwp7',
|
|
|
- __FUNCTION__,
|
|
|
- $e,
|
|
|
- 'DNS lookup exception',
|
|
|
- $e->getMessage()
|
|
|
- );
|
|
|
- }
|
|
|
+ # try default nameserver
|
|
|
+ $resolver = new Net_DNS2_Resolver();
|
|
|
+ try {
|
|
|
+ $result = $resolver->query($host, 'A');
|
|
|
+ return true;
|
|
|
+ } catch(Net_DNS2_Exception $e) {
|
|
|
+ logModuleCall(
|
|
|
+ 'cwp7',
|
|
|
+ __FUNCTION__,
|
|
|
+ $e,
|
|
|
+ 'DNS lookup exception',
|
|
|
+ $e->getMessage()
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
$hostA = $result->answer;
|
|
|
if($hostA[0]->type == 'CNAME') {
|
|
|
if(cwp7CheckA($hostA[0]->cname, $serverIP, $nameserverIP, $recurse++)) {
|
|
|
@@ -1175,24 +1183,20 @@ function cwp7CheckA($host, $serverIP, $nameserverIP, $recurse = 0) {
|
|
|
*/
|
|
|
function cwp7CheckSOA($domain, $nameserverIP, $nameserverName ) {
|
|
|
$nameserver = array($nameserverIP);
|
|
|
+ # try NS1
|
|
|
$resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
|
|
|
try {
|
|
|
$result = $resolver->query($domain, 'SOA');
|
|
|
-
|
|
|
+ return 'self';
|
|
|
} catch(Net_DNS2_Exception $e) {
|
|
|
- logModuleCall(
|
|
|
- 'cwp7',
|
|
|
- __FUNCTION__,
|
|
|
- $e,
|
|
|
- 'DNS lookup exception',
|
|
|
- $e->getMessage()
|
|
|
- );
|
|
|
- return 'none';
|
|
|
- }
|
|
|
-
|
|
|
- if($result->answer[0]->mname == $nameserverName) {
|
|
|
- return 'self';
|
|
|
- }
|
|
|
+ # try default NS
|
|
|
+ $resolver = new Net_DNS2_Resolver();
|
|
|
+ try {
|
|
|
+ $result = $resolver->query($domain, 'SOA');
|
|
|
+ } catch(Net_DNS2_Exception $e) {
|
|
|
+ return 'none';
|
|
|
+ }
|
|
|
+ }
|
|
|
return $result->answer[0]->mname;
|
|
|
}
|
|
|
|