Re: dns_get_record for OSX
| From: | Scott MacVicar | Date: | Wed, 07 Jan 2009 13:04:36 +0000 |
| Subject: | Re: dns_get_record for OSX | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-42530@lists.php.net to get a copy of this message | ||
Hi Kalle,
Kalle Sommer Nielsen wrote:
> Hi Scott
>
> 2009/1/7 Scott MacVicar <scott@macvicar.net>:
>> I went to look at the bug Pierre mention earlier and noticed that
>> dns_get_record isn't implemented on OS X, this looks to be down to the fact
>> that it has a bind 8 BC layer that we use by default for some reason. I
>> tried to make it use the bind 9 interface but it wasn't a simple task as
>> some other things were missing.
>>
>> End result here is a patch that allows bind 8 to work and therefore OS X,
>> the main difference is that there is a shared _res structure rather than a
>> per request one.
>
> Does this mean it will also work on BSD? As far I remember then
> dns_get_record wasn't implemented on BSD aswell. If not then it would
> be ideal to support it if OSX is patched :)
Yeah it would work on all of the BSDs, though we have some wierd
bastardisation of bind8 and bind9 code in dns.c, I think some gentle
refactoring is in order to get this in a bit better shape.
OS X actually has res_nmkquery but AC_CHECK_FUNC can't correctly detect
this because of the way its defined in resolv.h, it's something like this.
#define res_nmkquery bind_9_nmkquery
AC_CHECK_FUNC does an #undef res_nmkquery as part of its test resulting
in the failure.
FreeBSD has __res_nmkquery but unfortunately PHP_CHECK_FUNC when
checking for res_nmkquery OR __res_nmkquery it doesn't tell you which
one it found.
I'll fix this in stages I guess, starting with the autoconf fun.
Scott