I think I've already read all the discussion in debian-devel, as I said there isn't much information besides your first post, which I already read. Please see the comments inline.
On Sun, Jan 31, 2010 at 10:46 PM, Marco d'Itri <m...@linux.it> wrote: > On Jan 31, Quinn Li <quinn.li...@gmail.com> wrote: > >> A: a server creates two sockets, one binds to IPv4 address, and the >> other binds to IPv6; > This cannot work with bindv6only=0, and is the real problem we need to > solve. Sorry I can't find any discussion/information saying that current dual stack application was broken unless we set net.ipv6.bindv6only to 1. In contrary, yo said many of these applications works well using setsockopt to set IPV6_V6ONLY to 1 explicitly, and IPV6_V6ONLY was implemented way back in 2.4.24, from the google book that you are referring. (however with bizarre code to deal with different v6 binding behaviors among OSes). Correct me if I'm wrong. Resetting the default value of net.ipv6.bindv6only doesn't help unblocking these applications, only allowing them to replace some complex code with more simple ones (I admit). And more importantly, it blocks other applications which simply use one socket to accept both v4 and v6 connections, these applications needs to be patched. (Maybe these applications is hard to port to Windows which does not even support v4 mapped address, without rewriting to use multiple sockets, but who's to blame?) So main purpose of this bug/feature is to help application refining their code? RFC specifies IPv4 mapped address in an effort to support writing dual stack server in a 'simple' way. Yes it's informational, and some OSes don't respect that effort by ignoring IPv4 mapped address, so that many 'big' applications need to deal with it. Yes, it is a mess, we should do some thing to unify the behavior among most OSes. But setting net.ipv6.bindv6only to 1 (on Debian) doesn't clean the mess, only brings more mess. Now that 'big' applications not only should still setsockopt IPV6_BINDV6ONLY to 1 explicitly in code (remember application shouldn't assume it will only run on Debian squeeze), other 'simple' applications should also setsockopt IPV6_BINDV6ONLY to 0 explicitly, even if they don't want to port to other OS, even if they just want to write simple dual stack server with one binding socket. > The issue was discussed in more details on debian-devel and apparently > you do not understand well sockets programming, please read the whole > thread and only come back if you have new arguments. I don't know how 'apparently' I am, but it would be very kind of you to point out my mistake. I admit I haven't written big and multi-platform applications that bind to many address to support dual stack. But I've fixed a simple application that binds to 1 socket when it stopped receiving ipv4 connection after recently upgraded to squeeze. I think this qualifies me for asking about it. > > -- > ciao, > Marco > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > > iEYEARECAAYFAktll6kACgkQFGfw2OHuP7EXfgCcCX2QJ7oyfcIOoLIUx3puoPIY > 1TMAoKDIaVL5lrcaEW7cIhC1za8KKeYt > =C971 > -----END PGP SIGNATURE----- > > -- Vi veri veniversum vivus vici -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org