]> granicus.if.org Git - php/commitdiff
Unset ai_canonname field in dump
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 5 Aug 2020 12:56:15 +0000 (14:56 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 5 Aug 2020 12:58:56 +0000 (14:58 +0200)
Okay, looks like ai_canonname does not get set on macos even if
AI_CANONNAME is specified, so canonicalize this in the other
direction instead and unset ai_canonname if it is present.

ext/sockets/tests/socket_addrinfo_explain.phpt

index ebc60afa51f0122d7a861a11e928773284d307d3..16366ac1be04571b2326efcfbd4efa1a8b5223de 100644 (file)
@@ -10,12 +10,14 @@ if (!extension_loaded('sockets')) {
 $addrinfo = socket_addrinfo_lookup('127.0.0.1', 2000, array(
     'ai_family' => AF_INET,
     'ai_socktype' => SOCK_DGRAM,
-    'ai_flags' => AI_CANONNAME,
 ));
-var_dump(socket_addrinfo_explain($addrinfo[0]));
+$result = socket_addrinfo_explain($addrinfo[0]);
+// Musl sets ai_canonname even if AI_CANONNAME is not specified.
+unset($result['ai_canonname']);
+var_dump($result);
 echo "Done";
 --EXPECTF--
-array(6) {
+array(5) {
   ["ai_flags"]=>
   int(%d)
   ["ai_family"]=>
@@ -24,8 +26,6 @@ array(6) {
   int(2)
   ["ai_protocol"]=>
   int(%d)
-  ["ai_canonname"]=>
-  string(9) "127.0.0.1"
   ["ai_addr"]=>
   array(2) {
     ["sin_port"]=>