aboutsummaryrefslogtreecommitdiffstats
path: root/include/network.php
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-05-24 16:32:21 -0700
committerzotlabs <mike@macgirvin.com>2018-05-24 16:32:21 -0700
commitcd4454100b41f384148d0c1ebdaf6e64d629b0e1 (patch)
tree729b52c39a6c3663c0c74640b475505ac205e00d /include/network.php
parentafb29176a4e301d4e4b247e0d28084e2936c8899 (diff)
downloadvolse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.tar.gz
volse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.tar.bz2
volse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.zip
alternate fix for z_check_dns
Diffstat (limited to 'include/network.php')
-rw-r--r--include/network.php20
1 files changed, 14 insertions, 6 deletions
diff --git a/include/network.php b/include/network.php
index 7e8f823a3..4b2d2f93f 100644
--- a/include/network.php
+++ b/include/network.php
@@ -468,13 +468,21 @@ function z_dns_check($h,$check_mx = 0) {
&& \App::$config['system']['do_not_check_dns'])
return true;
+ // This will match either Windows or Mac ('Darwin')
+ if(stripos(PHP_OS,'win') !== false)
+ return true;
+
+ // BSD variants have dns_get_record() but it only works reliably without any options
+ if(stripos(PHP_OS,'bsd') !== false)
+ return((@dns_get_record($h) || filter_var($h, FILTER_VALIDATE_IP)) ? true : false);
+
+ // Otherwise we will assume dns_get_record() works as documented
+
+ $opts = DNS_A + DNS_CNAME + DNS_PTR;
+ if($check_mx)
+ $opts += DNS_MX;
- //$opts = DNS_A + DNS_CNAME + DNS_PTR;
- //if($check_mx)
- // $opts += DNS_MX;
- // Specific record type flags are unreliable on FreeBSD and Mac,
- // so now we'll ignore these and just check for the existence of any DNS record.
- return((@dns_get_record($h) || filter_var($h, FILTER_VALIDATE_IP)) ? true : false);
+ return((@dns_get_record($h,$opts) || filter_var($h, FILTER_VALIDATE_IP)) ? true : false);
}
/**