Testing script:
import socket
print(
socket.getaddrinfo(
'127.0.0.1',
80,
type=socket.SOCK_STREAM,
)[0][3], # ai_canonname
socket.getaddrinfo(
'127.0.0.1',
80,
type=socket.SOCK_STREAM,
flags=socket.AI_CANONNAME,
)[0][3], # ai_canonname
)
Testing result:
| Platform |
flags=AI_CANONNAME |
flags=0 |
| Linux glibc |
"127.0.0.1" |
"" |
| Linux musl |
"127.0.0.1" |
"127.0.0.1" |
| macOS |
"" |
"" |
| uvloop |
"" |
"" |
Expected result: uvloop __static_getaddrinfo_pyaddr() returns consistent result as the platform std C lib returns.
UPDATE: we would expect __static_getaddrinfo_pyaddr() honor the AI_CANONNAME flag.