On Wed, 2005-06-08 at 09:22 +0200, Jeroen Massar wrote:
> 
> For all your answers, read Eva's excellent document at:
> http://gsyc.escet.urjc.es/~eva/IPv6-web/ipv6.html


Yes very good document.  Please read.


> > Here's the main question:  
> > 
> > -  should it work consistently as a definition of the protocol:
> > bind(socket,sockaddr,len) where the socket is AF_INET6 and the IP address is
> > INADDR6_ANY.  
> 
> No, this will only bind to AF_INET6. Some OS's support the compatibility
> addresses, while some don't.

Only if the default in the OS is to do that.  There is a socket option
to figure out the default.  It's called IPV6_V6ONLY.  If your OS
supports it, you change the behavior of the wildcard bind to use IPv6
only addresses (option is on), or all addresses (option is off).

> 
> > -  server binds as described and clients connect from IP4 or IP6 families. 
> 
> On some platforms it does, on some it doesn't
> 
> > -  Are there some OSs that won't allow this?  On these do I have to listen
> > on multiple sockets in different families, callling select() and then
> > accept()? 

Yes.  You would need to create 2 sockets and select() or poll() between
them.

> Always use multiple sockets, for that matter, use getaddrinfo().
> 
> > Any shared experience would be helpful.  I'm supporting Solaris, AIX, HP-UX,
> > Tru64, WIN2K, Linux various kernels, and some other oddball OS's.

On Linux, Tru64, and HP-UX, the behavior of a bind to a IN6ADDR_ANY will
is allow operations on all address IPv4 and IPv6.  IPv4 address will be
represented in IPv4-mapped format of ::ffff:1.2.3.4.

Tru64 5.1b and Linux 2.6 (not sure about HP-UX) have support for
IPV6_V6ONLY socket option.  You can enable the separate socket behavior
by setting this option to 1.

-vlad

---------------------------------------------------------------------
The IPv6 Users Mailing List
Unsubscribe by sending "unsubscribe users" to [EMAIL PROTECTED]

Reply via email to