From 48040cf3459327a137c78a5bd76dbee3221948f3 Mon Sep 17 00:00:00 2001 From: viest Date: Sat, 3 Aug 2019 23:05:56 +0800 Subject: [PATCH] Remove deprecated getaddrinfo flags The AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES have been deprecated by glibcs, and PHP 7.4 follows this deprecation. This removes the offending flags for PHP 8.0. --- UPGRADING | 4 ++++ ext/sockets/sockets.c | 11 +---------- ext/sockets/tests/ai_idn_deprecation.phpt | 20 -------------------- 3 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 ext/sockets/tests/ai_idn_deprecation.phpt diff --git a/UPGRADING b/UPGRADING index 6f6d8a57a5..a398a61cc6 100644 --- a/UPGRADING +++ b/UPGRADING @@ -178,6 +178,10 @@ PHP 8.0 UPGRADE NOTES ReflectionFunction::invoke($arg = null, ...$args) ReflectionMethod::invoke($object, $arg = null, ...$args) +- Socket: + . The deprecated AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES + flags for socket_addrinfo_lookup() have been removed. + - SPL: . SplFileObject::fgetss() has been removed. . SplHeap::compare($a, $b) now specifies a method signature. Inheriting diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 21538e92e1..e62bb88ef7 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -850,8 +850,6 @@ static PHP_MINIT_FUNCTION(sockets) #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); - REGISTER_LONG_CONSTANT("AI_IDN_USE_STD3_ASCII_RULES", AI_IDN_USE_STD3_ASCII_RULES, CONST_CS | CONST_PERSISTENT); #endif #ifdef AI_NUMERICSERV REGISTER_LONG_CONSTANT("AI_NUMERICSERV", AI_NUMERICSERV, CONST_CS | CONST_PERSISTENT); @@ -2573,14 +2571,7 @@ PHP_FUNCTION(socket_addrinfo_lookup) ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(zhints), key, hint) { if (key) { if (zend_string_equals_literal(key, "ai_flags")) { - zend_long flags = zval_get_long(hint); -#if HAVE_AI_IDN - if (flags & (AI_IDN_ALLOW_UNASSIGNED | AI_IDN_USE_STD3_ASCII_RULES)) { - php_error_docref(NULL, E_DEPRECATED, - "AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES are deprecated"); - } -#endif - hints.ai_flags = flags; + hints.ai_flags = zval_get_long(hint); } else if (zend_string_equals_literal(key, "ai_socktype")) { hints.ai_socktype = zval_get_long(hint); } else if (zend_string_equals_literal(key, "ai_protocol")) { diff --git a/ext/sockets/tests/ai_idn_deprecation.phpt b/ext/sockets/tests/ai_idn_deprecation.phpt deleted file mode 100644 index 02a6965d26..0000000000 --- a/ext/sockets/tests/ai_idn_deprecation.phpt +++ /dev/null @@ -1,20 +0,0 @@ ---TEST-- -AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES are deprecated ---SKIPIF-- - ---FILE-- - AF_INET, - 'ai_socktype' => SOCK_DGRAM, - 'ai_flags' => AI_IDN_ALLOW_UNASSIGNED, -)); -var_dump(socket_addrinfo_connect($addrinfo[0])); -echo "Done"; ---EXPECTF-- -Deprecated: socket_addrinfo_lookup(): AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES are deprecated in %s on line %d -resource(%d) of type (Socket) -Done -- 2.40.0