Erwan Le Pape <lepaperw...@gmail.com> added the comment:

Thanks for testing that. It's good that you used an actual address because that 
eliminates the possibility that AIX doesn't handle addresses it doesn't really 
know about.

On the other hand, even when properly specified to a real scoped IPv6 address, 
`getaddrinfo` doesn't seem to get the necessary scope ID from the underlying C 
call which socket.getaddrinfo > _socket.getaddrinfo is pretty much mapped to.

I'm looking at cpython/master for the socketmodule implementation:
https://github.com/python/cpython/blob/6dbbe748e101a173b4cff8aada41e9313e287e0f/Modules/socketmodule.c#L6400
 is `getaddrinfo`
https://github.com/python/cpython/blob/master/Modules/socketmodule.c#L1294 is 
`makesockaddr` which actually creates the 4-tuple returned as the last element 
of the `getaddrinfo` tuples.
The fourth element (ie. the scope ID) is clearly `a->sin6_scope_id` which 
should contain the scope ID.

At this stage, I don't know if this is a bug from the socketmodule which I 
doubt or if the AIX `getaddrinfo` simply just doesn't handle scoped IP 
addresses properly.

If you're still okay to proxy tests for AIX, I'll try and come up with either a 
simple C snippet to see what's in the returned structure or ctype the AIX 
`libc` `getaddrinfo`.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35545>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to