I've tried applying the patch. I can confirm via Python socket.getaddrinfo() that the IPv6 scope ID is now being set. So that seems to be a good fix.
However, if I try ping6 or ssh -6 to my own PC craig-linux.local, I still get an "Invalid argument" error:
$ ping6 craig-linux.local
connect: Invalid argument
$ ssh -6 craig-linux.local
ssh: connect to host craig-linux.local port 22: Invalid argument
But this works:
$ ping6 -I eth2 craig-linux.local
PING craig-linux.local(fe80::21b:21ff:febb:73b2) from fe80::21b:21ff:febb:73b2 eth2: 56 data bytes
...
If I strace it, I see:
connect(3, {sa_family=AF_INET6, sin6_port=htons(1025), inet_pton(AF_INET6, "fe80::21b:21ff:febb:73b2", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINVAL (Invalid argument)
I've tried applying the patch. I can confirm via Python socket. getaddrinfo( ) that the IPv6 scope ID is now being set. So that seems to be a good fix.
However, if I try ping6 or ssh -6 to my own PC craig-linux.local, I still get an "Invalid argument" error:
$ ping6 craig-linux.local
connect: Invalid argument
$ ssh -6 craig-linux.local
ssh: connect to host craig-linux.local port 22: Invalid argument
But this works: local(fe80: :21b:21ff: febb:73b2) from fe80::21b: 21ff:febb: 73b2 eth2: 56 data bytes
$ ping6 -I eth2 craig-linux.local
PING craig-linux.
...
If I strace it, I see: AF_INET6, sin6_port= htons(1025) , inet_pton(AF_INET6, "fe80:: 21b:21ff: febb:73b2" , &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINVAL (Invalid argument)
connect(3, {sa_family=
So the scope ID is still set to 0.