Michael Felt <aixto...@felt.demon.nl> added the comment: On 25/05/2019 00:19, Erwan Le Pape wrote: > 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.
I also doubt a bug in the socketmodule - my assumption is that AIX may be wrong - although I prefer different, i.e., has idiosyncrasies. ++ If we "accept" or "conclude" that AIX's getaddrinfo() routine is not working as needed for this test - would "you" (Python-core) accept a @SkipIf for this test - as is already done re: IPv6 re: bpo-34490 Fix test_asyncio for AIX - do not call transport.get_extra_info('sockname') ++ Further, I have a start on "send/receive" stubs in C and am trying out different ideas - learn as I go. "netstat" clearly shows, as does ifconfig -a root@x066:[/]ifconfig -a en0: flags=1e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN> inet 192.168.129.66 netmask 0xffffff00 broadcast 192.168.129.255 inet6 fe80::221:5eff:fea3:c746/64 tcp_sendspace 131072 tcp_recvspace 65536 rfc1323 0 en1: flags=1e080863,480<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),CHAIN> inet6 fe80::f8d1:8cff:fe32:8305%2/64 lo0: flags=e08084b,c0<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,LARGESEND,CHAIN> inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1%1/128 tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1 Sadly, I have a lot to learn re: IPv6 - and I expect how "host-based routing" is concerned*, so movement forward will be slow going. * from years ago, I recall a discussion where one of the improvements in IPv6 compared to IPv4 is that the "work" of routing would be shared by all end-points, rather than focused in router(-hubs) whose performance basically determine the performance limits of a connection (or connections). > > 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`. Repeating - always willing. > > ---------- > > _______________________________________ > Python tracker <rep...@bugs.python.org> > <https://bugs.python.org/issue35545> > _______________________________________ > ---------- _______________________________________ 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