diff options
author | zotlabs <mike@macgirvin.com> | 2018-05-24 16:32:21 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-05-24 16:32:21 -0700 |
commit | cd4454100b41f384148d0c1ebdaf6e64d629b0e1 (patch) | |
tree | 729b52c39a6c3663c0c74640b475505ac205e00d | |
parent | afb29176a4e301d4e4b247e0d28084e2936c8899 (diff) | |
download | volse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.tar.gz volse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.tar.bz2 volse-hubzilla-cd4454100b41f384148d0c1ebdaf6e64d629b0e1.zip |
alternate fix for z_check_dns
-rw-r--r-- | include/network.php | 20 |
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); } /** |