]> granicus.if.org Git - php/commitdiff
Promote notice to ValueError for invalid hint key
authorGeorge Peter Banyard <girgias@php.net>
Mon, 28 Sep 2020 14:14:44 +0000 (15:14 +0100)
committerGeorge Peter Banyard <girgias@php.net>
Mon, 28 Sep 2020 15:24:04 +0000 (16:24 +0100)
ext/sockets/sockets.c
ext/sockets/tests/socket_addrinfo_lookup.phpt

index 729477ab59f3ecbf5b464886d26845cb61cb985a..0b21c4f6843ff37ced726da2888515fdb02bb628 100644 (file)
@@ -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();
index 2d9ef391969c12878bf5fa4d4d342cbe78e633e6..d85fef519e2166bdf8fefb4ffc5d390cad0c5e29 100644 (file)
@@ -7,16 +7,16 @@ if (!extension_loaded('sockets')) {
 }
 --FILE--
 <?php
-$addrinfo = socket_addrinfo_lookup('127.0.0.1', 2000, array(
-    'ai_family' => 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"