Browse Source

Workaround for bug #25955

Generalized a Darwin check in dns.c to a check for inet_pton() (kalowsky)
PEAR_1_4DEV
Marko Karppinen 23 years ago
parent
commit
074ca45399
  1. 2
      configure.in
  2. 12
      ext/standard/dns.c

2
configure.in

@ -189,6 +189,7 @@ case $host_alias in
CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";;
*darwin*|*rhapsody*)
CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
AC_DEFINE(BIND_8_COMPAT, 1, [Enabling BIND8 compatibility for Panther])
php_multiple_shlib_versions_ok=yes;;
*beos*)
beos_threads=1
@ -480,6 +481,7 @@ gettimeofday \
gmtime_r \
inet_ntoa \
inet_ntop \
inet_pton \
isascii \
link \
localtime_r \

12
ext/standard/dns.c

@ -90,9 +90,7 @@ PHP_FUNCTION(gethostbyaddr)
addr = php_gethostbyaddr(Z_STRVAL_PP(arg));
if(addr == NULL) {
#if HAVE_IPV6 && !defined(__MacOSX__)
/* MacOSX at this time has support for IPv6, but not inet_pton()
* so disabling IPv6 until further notice. MacOSX 10.1.2 (kalowsky) */
#if HAVE_IPV6 && HAVE_INET_PTON
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Address is not a valid IPv4 or IPv6 address");
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Address is not in a.b.c.d form");
@ -107,17 +105,13 @@ PHP_FUNCTION(gethostbyaddr)
/* {{{ php_gethostbyaddr */
static char *php_gethostbyaddr(char *ip)
{
#if HAVE_IPV6 && !defined(__MacOSX__)
/* MacOSX at this time has support for IPv6, but not inet_pton()
* so disabling IPv6 until further notice. MacOSX 10.1.2 (kalowsky) */
#if HAVE_IPV6 && HAVE_INET_PTON
struct in6_addr addr6;
#endif
struct in_addr addr;
struct hostent *hp;
#if HAVE_IPV6 && !defined(__MacOSX__)
/* MacOSX at this time has support for IPv6, but not inet_pton()
* so disabling IPv6 until further notice. MacOSX 10.1.2 (kalowsky) */
#if HAVE_IPV6 && HAVE_INET_PTON
if (inet_pton(AF_INET6, ip, &addr6)) {
hp = gethostbyaddr((char *) &addr6, sizeof(addr6), AF_INET6);
} else if (inet_pton(AF_INET, ip, &addr)) {

Loading…
Cancel
Save