| From 923cab3a5ee112d3de44b5571e73402f1fa3d619 Mon Sep 17 00:00:00 2001 |
| From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
| Date: Mon, 26 Feb 2018 19:06:40 +0100 |
| Subject: [PATCH] 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 <thomas.petazzoni@bootlin.com> |
| Upstream-status: https://github.com/php/php-src/pull/3160 |
| --- |
| ext/sockets/config.m4 | 13 +++++++++++++ |
| ext/sockets/sockets.c | 2 +- |
| 2 files changed, 14 insertions(+), 1 deletion(-) |
| |
| 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 <netdb.h> |
| + ], [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 6db56c2816..ee9651ce09 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 defined(HAVE_AI_IDN) && defined(__USE_GNU) |
| 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); |
| -- |
| 2.14.3 |
| |