Yes, as Alan said the way IPv6 is set up in the JDK means that either
you have:
AF_INET sockets (which are IPv4 only) or
AF_INET6 sockets (which can be IPv4 or IPv6)
It's not possible to mix the two types. If inetd passes an AF_INET
socket on startup then the VM is stuck in IPv4 mode.
I've updated the webrev after the last comments:
http://cr.openjdk.java.net/~michaelm/8211842/webrev.2/
It's really just refactoring. So, unless anyone has a comment I will push
the fix shortly.
Thanks,
Michael
On 29/11/2018, 19:03, Alan Bateman wrote:
On 29/11/2018 18:04, Bernd Eckenfels wrote:
Hello,
I wonder if that conclusion „stdin = tcp4 -> disable tcp6“ is correct
at all. The started program might serve a v4 connection but it still
could want to do ipv6 client connections.
If somebody wants to disable v4 they can do it regularly with the
System property.
The check is important because the JDK doesn't support having some
Socket or SocketChannel objects be created with IPv4 sockets, and
others with IPv6 sockets. The only exception to this is
DatagramChannel where the protocol family is exposed in the API. The
RDMA socket API under discussion on nio-dev will be another case.
-Alan