Edit report at http://bugs.php.net/bug.php?id=53092&edit=1
ID: 53092
Comment by: error at ioerror dot us
Reported by: gunni at wave dot is
Summary: dns_get_record does not return false on dns server
failure
Status: Open
Type: Bug
Package: Network related
Operating System: Ubuntu Server 10.04
PHP Version: 5.3.3
Block user comment: N
Private report: N
New Comment:
It should be noted that this general issue also affects gethostbyname()
and its friends; PHP provides no way to distinguish between NXDOMAIN and
SERVFAIL. I have a feature which must distinguish between them to work
properly, and so I can't roll it out.
Previous Comments:
------------------------------------------------------------------------
[2010-10-18 06:30:03] gunni at wave dot is
i fail hard
Requests for existing domain names when dns works: OK (array with
stuff)
Requests for unexisting domain names when dns works: OK (empty array)
Requests for existing domain names when dns DOES NOT work: FAIL (empty
array)
Requests for unexisting domain names when dns DOES NOT work: FAIL (empty
array)
------------------------------------------------------------------------
[2010-10-18 05:37:48] gunni at wave dot is
i should clarify:
Requests for existing domain names when dns works: OK (array with
stuff)
Requests for unexisting domain names when dns works: OK (empty array)
Requests for existing domain names when dns works: FAIL (empty array)
Requests for unexisting domain names when dns works: FAIL (empty array)
------------------------------------------------------------------------
[2010-10-18 05:30:33] gunni at wave dot is
Description:
------------
dns_get_record does not return false on dns server failure
If you make an example dns failure by changing resolv.conf to some silly
ip (i
used 1.3.3.7)
Requests for existing domain names: OK (array with stuff)
Requests for unexisting domain names: OK (empty array)
Requests for any domain when dns server does not respond: FAIL (empty
array)
Which makes it impossible to see if the dns server failed or if the
domain
doesn't exist.
Documentation states: "This function returns an array of associative
arrays, or
FALSE on failure."
When the DNS server fails, that's considered a failure, correct?
Test script:
---------------
<?php
// try various domains with dns working/not working
print_r(dns_get_record('google.com', DNS_A));
?>
Expected result:
----------------
if dns does not respond within timeout, return false.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53092&edit=1