On Tue, Sep 15, 2009 at 08:12:03AM +0200, Bas Wijnen wrote: > On Tue, Sep 15, 2009 at 07:51:00AM +0200, Roland Clobus wrote: > > On Sat, 2009-09-12 at 15:57 +0200, Bas Wijnen wrote: > > > I'm a bit confused: this is a Debian bug, so the problem presumably > > > exists on Debian systems. This may be different on GNU/kFreeBSD, but > > > the reporter is using GNU/Linux, like the system I'm testing on.
> > > Anyway, I'm attaching the patch. > > That patch does not work as advertised. I get the error, and the result > > (according to netstat) is that the server only listens on IPv4. > > Somewhere when I upgraded to kernel 2.6.30 Pioneers broke, so I assume > > that the automatic IPv6<->IPv4 bridge was removed. > In that case, the bug may not actually be in Pioneers. At least it > explains my confusion: I tested it on a stable system, with a 2.6.26 > kernel. > I don't see how this can be fixed, if the approach of the patch to > listen twice doesn't work. In the ipv6(7) man page, it says: > IPv4 connections can be handled with the v6 API by using the > v4-mapped-on-v6 address type; thus a program only needs only to > support this API type to support both protocols. This is > handled transparently by the address handling functions in > libc. > The reverse does not seem to be the case, however. So the problem is > that the IPv4 address is returned first, it is listened on, then the > IPv6 address is returned, and the address is already in use. > A solution might be to do the listening in two rounds, first ignoring > all IPv4 addresses and after that using only them (and not warning about > address already in use failures there). While this works, I consider it > a kernel bug if it really is so hard to do it right. > Steve, do you know more about this? Well, I don't think there's any kernel bug here, because all the other IPv6-aware network services I have are listening just fine on both types of addresses. I'm meaning to dig into this, but won't really have time to do so until the weekend. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ [email protected] [email protected]
signature.asc
Description: Digital signature

