From: George Peter Banyard Date: Mon, 28 Sep 2020 14:14:44 +0000 (+0100) Subject: Promote notice to ValueError for invalid hint key X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=189751cbebdc77f7e2eb18db1bba3c3cfc6738ed;p=php Promote notice to ValueError for invalid hint key --- diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 729477ab59..0b21c4f684 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -2315,8 +2315,9 @@ PHP_FUNCTION(socket_addrinfo_lookup) } else if (zend_string_equals_literal(key, "ai_family")) { hints.ai_family = zval_get_long(hint); } else { - /* TODO Promote to warning/error? */ - php_error_docref(NULL, E_NOTICE, "Unknown hint %s", ZSTR_VAL(key)); + zend_argument_value_error(3, "must only contain array keys \"ai_flags\", \"ai_socktype\", " + "\"ai_protocol\", or \"ai_family\""); + RETURN_THROWS(); } } } ZEND_HASH_FOREACH_END(); diff --git a/ext/sockets/tests/socket_addrinfo_lookup.phpt b/ext/sockets/tests/socket_addrinfo_lookup.phpt index 2d9ef39196..d85fef519e 100644 --- a/ext/sockets/tests/socket_addrinfo_lookup.phpt +++ b/ext/sockets/tests/socket_addrinfo_lookup.phpt @@ -7,16 +7,16 @@ if (!extension_loaded('sockets')) { } --FILE-- AF_INET, - 'ai_socktype' => SOCK_DGRAM, - 'invalid' => null, -)); -var_dump($addrinfo[0]); -echo "Done"; -?> ---EXPECTF-- -Notice: socket_addrinfo_lookup(): Unknown hint invalid in %ssocket_addrinfo_lookup.php on line %d -object(AddressInfo)#%d (0) { +try { + $addrinfo = socket_addrinfo_lookup('127.0.0.1', 2000, array( + 'ai_family' => AF_INET, + 'ai_socktype' => SOCK_DGRAM, + 'invalid' => null, + )); + var_dump($addrinfo[0]); +} catch (\ValueError $e) { + echo $e->getMessage(), \PHP_EOL; } -Done +?> +--EXPECT-- +socket_addrinfo_lookup(): Argument #3 ($hints) must only contain array keys "ai_flags", "ai_socktype", "ai_protocol", or "ai_family"