Re: Default value of net.ipv6.bindv6only should revert to 0
On Mon, Apr 12, 2010 at 11:12:36AM -0700, Russ Allbery wrote:
> Salvo Tomaselli <tiposchi@tiscali.it> writes:
> > On Monday 12 April 2010 18:19:08 Marco d'Itri wrote:
> >> You keep missing the point. Let me try with shorter sentences, if you
> >> still do not get it maybe I can try a puppets show.
"Standards good. BSD bug bad."
I hope that's short enough.
> > So we introduce bugs in kernel to workaround bugs in daemons?
>
> The way to fix the bug in the daemon is to always use IPV6_V6ONLY in the
> networking code because no other way of handling listening sockets with a
> dual stack is even remotely sane.
>
> Until the daemon is modified to either use IPV6_V6ONLY or to deal with
> IPv4-mapped addresses, it's going to be broken,
A daemon that's not modified to support anything but IPv4 uses the old style
interface. If you support getaddrinfo() from start, you know about IPv6.
> > Open a bugreport _IF_ you can find any real daemon with this kind of
> > problem.
>
> Just about every daemon I've ever seen had this problem in its original
> conversion to IPv6 support. I've fixed it in all of my code by using
> IPV6_V6ONLY as soon as I became aware of its existence.
Instead of listening on a single socket, you need to change every single
daemon to include a select() loop. That's explicitely allowed by all
relevant RFCs and by POSIX, so breaking that is quite a regression.
--
1KB // Microsoft corollary to Hanlon's razor:
// Never attribute to stupidity what can be
// adequately explained by malice.
Reply to: