From: Thomas Petazzoni Date: Mon, 26 Feb 2018 18:06:40 +0000 (+0100) Subject: ext/sockets: make AI_IDN usage optional X-Git-Tag: php-7.2.4RC1~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8489ecefd3de180d1944abfce2446a61d24ed3b3;p=php ext/sockets: make AI_IDN usage optional AI_IDN is not supported by all C libraries (uClibc, musl), so make it optional, like AI_ALL. Signed-off-by: Thomas Petazzoni --- diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4 index fe7d22a10a..2bf6a2bd11 100644 --- a/ext/sockets/config.m4 +++ b/ext/sockets/config.m4 @@ -69,6 +69,19 @@ if test "$PHP_SOCKETS" != "no"; then AC_DEFINE(HAVE_AI_ALL,1,[Whether you have AI_ALL]) fi + dnl Check for AI_IDN flag + AC_CACHE_CHECK([if getaddrinfo supports AI_IDN],[ac_cv_gai_ai_idn], + [ + AC_TRY_COMPILE([ +#include + ], [int flag = AI_IDN;], + ac_cv_gai_ai_idn=yes, ac_cv_gai_ai_idn=no) + ]) + + if test "$ac_cv_gai_ai_idn" = yes; then + AC_DEFINE(HAVE_AI_IDN,1,[Whether you have AI_IDN]) + fi + PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared],, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h]) fi diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index b93917d219..8e3fc1be31 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -796,7 +796,7 @@ static PHP_MINIT_FUNCTION(sockets) REGISTER_LONG_CONSTANT("AI_ALL", AI_ALL, CONST_CS | CONST_PERSISTENT); #endif REGISTER_LONG_CONSTANT("AI_ADDRCONFIG", AI_ADDRCONFIG, CONST_CS | CONST_PERSISTENT); -#ifdef __USE_GNU +#if HAVE_AI_IDN REGISTER_LONG_CONSTANT("AI_IDN", AI_IDN, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("AI_CANONIDN", AI_CANONIDN, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("AI_IDN_ALLOW_UNASSIGNED", AI_IDN_ALLOW_UNASSIGNED, CONST_CS | CONST_PERSISTENT);