Skip to content

Commit a2f478c

Browse files
committed
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: - Fixed bug #65923 (ext/socket assumes AI_V4MAPPED is defined)
2 parents 2e6d830 + 78f69a2 commit a2f478c

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

ext/sockets/config.m4

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@ if test "$PHP_SOCKETS" != "no"; then
1616

1717
if test "$ac_cv_cmsghdr" = yes; then
1818
AC_DEFINE(HAVE_CMSGHDR,1,[Whether you have struct cmsghdr])
19-
fi
19+
fi
2020

2121
AC_CHECK_FUNCS([hstrerror socketpair if_nametoindex if_indextoname])
22-
AC_CHECK_HEADERS([netdb.h netinet/tcp.h sys/un.h sys/sockio.h errno.h])
22+
AC_CHECK_HEADERS([netdb.h netinet/tcp.h sys/un.h sys/sockio.h errno.h])
2323
AC_TRY_COMPILE([
2424
#include <sys/types.h>
2525
#include <sys/socket.h>
2626
], [static struct msghdr tp; int n = (int) tp.msg_flags; return n],[],
2727
[AC_DEFINE(MISSING_MSGHDR_MSGFLAGS, 1, [ ])]
2828
)
2929
AC_DEFINE([HAVE_SOCKETS], 1, [ ])
30-
30+
3131
dnl Check for fied ss_family in sockaddr_storage (missing in AIX until 5.3)
3232
AC_CACHE_CHECK([for field ss_family in struct sockaddr_storage], ac_cv_ss_family,
3333
[
@@ -38,11 +38,24 @@ if test "$PHP_SOCKETS" != "no"; then
3838
], [struct sockaddr_storage sa_store; sa_store.ss_family = AF_INET6;],
3939
ac_cv_ss_family=yes, ac_cv_ss_family=no)
4040
])
41-
41+
4242
if test "$ac_cv_ss_family" = yes; then
4343
AC_DEFINE(HAVE_SA_SS_FAMILY,1,[Whether you have sockaddr_storage.ss_family])
4444
fi
4545

46+
dnl Check for AI_V4MAPPED flag
47+
AC_CACHE_CHECK([if getaddrinfo supports AI_V4MAPPED],[ac_cv_gai_ai_v4mapped],
48+
[
49+
AC_TRY_COMPILE([
50+
#include <netdb.h>
51+
], [int flag = AI_V4MAPPED;],
52+
ac_cv_gai_ai_v4mapped=yes, ac_cv_gai_ai_v4mapped=no)
53+
])
54+
55+
if test "$ac_cv_gai_ai_v4mapped" = yes; then
56+
AC_DEFINE(HAVE_AI_V4MAPPED,1,[Whether you have AI_V4MAPPED])
57+
fi
58+
4659
PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared])
4760
PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h])
4861
fi

ext/sockets/sockaddr_conv.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ int php_set_inet6_addr(struct sockaddr_in6 *sin6, char *string, php_socket *php_
2727

2828
memset(&hints, 0, sizeof(struct addrinfo));
2929
hints.ai_family = AF_INET6;
30+
#if HAVE_AI_V4MAPPED
3031
hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG;
32+
#else
33+
hints.ai_flags = AI_ADDRCONFIG;
34+
#endif
3135
getaddrinfo(string, NULL, &hints, &addrinfo);
3236
if (!addrinfo) {
3337
#ifdef PHP_WIN32

0 commit comments

Comments
 (0)