0008-ext-sockets-make-AI_IDN-usage-optional.patch 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. From 923cab3a5ee112d3de44b5571e73402f1fa3d619 Mon Sep 17 00:00:00 2001
  2. From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  3. Date: Mon, 26 Feb 2018 19:06:40 +0100
  4. Subject: [PATCH] ext/sockets: make AI_IDN usage optional
  5. AI_IDN is not supported by all C libraries (uClibc, musl), so make it
  6. optional, like AI_ALL.
  7. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  8. Upstream-status: https://github.com/php/php-src/pull/3160
  9. ---
  10. ext/sockets/config.m4 | 13 +++++++++++++
  11. ext/sockets/sockets.c | 2 +-
  12. 2 files changed, 14 insertions(+), 1 deletion(-)
  13. diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4
  14. index fe7d22a10a..2bf6a2bd11 100644
  15. --- a/ext/sockets/config.m4
  16. +++ b/ext/sockets/config.m4
  17. @@ -69,6 +69,19 @@ if test "$PHP_SOCKETS" != "no"; then
  18. AC_DEFINE(HAVE_AI_ALL,1,[Whether you have AI_ALL])
  19. fi
  20. + dnl Check for AI_IDN flag
  21. + AC_CACHE_CHECK([if getaddrinfo supports AI_IDN],[ac_cv_gai_ai_idn],
  22. + [
  23. + AC_TRY_COMPILE([
  24. +#include <netdb.h>
  25. + ], [int flag = AI_IDN;],
  26. + ac_cv_gai_ai_idn=yes, ac_cv_gai_ai_idn=no)
  27. + ])
  28. +
  29. + if test "$ac_cv_gai_ai_idn" = yes; then
  30. + AC_DEFINE(HAVE_AI_IDN,1,[Whether you have AI_IDN])
  31. + fi
  32. +
  33. PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared],, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  34. PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h])
  35. fi
  36. diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
  37. index 6db56c2816..ee9651ce09 100644
  38. --- a/ext/sockets/sockets.c
  39. +++ b/ext/sockets/sockets.c
  40. @@ -796,7 +796,7 @@ static PHP_MINIT_FUNCTION(sockets)
  41. REGISTER_LONG_CONSTANT("AI_ALL", AI_ALL, CONST_CS | CONST_PERSISTENT);
  42. #endif
  43. REGISTER_LONG_CONSTANT("AI_ADDRCONFIG", AI_ADDRCONFIG, CONST_CS | CONST_PERSISTENT);
  44. -#ifdef __USE_GNU
  45. +#if defined(HAVE_AI_IDN) && defined(__USE_GNU)
  46. REGISTER_LONG_CONSTANT("AI_IDN", AI_IDN, CONST_CS | CONST_PERSISTENT);
  47. REGISTER_LONG_CONSTANT("AI_CANONIDN", AI_CANONIDN, CONST_CS | CONST_PERSISTENT);
  48. REGISTER_LONG_CONSTANT("AI_IDN_ALLOW_UNASSIGNED", AI_IDN_ALLOW_UNASSIGNED, CONST_CS | CONST_PERSISTENT);
  49. --
  50. 2.14.3