[erlang-patches] [PATCH] epmd: support IPv6 node registration
Fri May 3 15:27:50 CEST 2013
On Wed, Feb 20, 2013 at 07:55:17AM -0500, Michael Santos wrote:
> Allow IPv6 nodes to register with and query epmd. On systems with
> IPv6 support:
> * epmd listens on both the IPv4 and IPv6 ANY or loopback sockets
> * the epmd cli client connects to epmd over the IPv6 loopback
> * distributed nodes started with "-proto_dist inet6_tcp" will register
> with epmd over IPv6
> The interaction between IPv4 and IPv6 sockets depends on the platform:
> * FreeBSD allows multiple "specific" sockets to bind the same port (such
> as 2 sockets listening to the same port on ANY and the loopback).
> Binding port 4369 to IPv4 and IPv6 sockets simulataneously is allowed.
> * Linux does not allow the same port to be bound by different sockets.
> Setting the IPV6_V6ONLY socket option is required.
> * Windows
> The behaviour differs depending on the version of Windows:
> According to the site, sockets on Windows XP with Service Pack 1 (SP1)
> and Windows Server 2003 will only listen on either IPv4 or IPv6, so
> creating two sockets is required to service IPv4 and IPv6 traffic on
> the same port. The IPV6_V6ONLY socket option is not supported.
> For Windows Vista and later, a single socket can handle IPv4 and IPv6
> traffic for the same port. The IPV6_V6ONLY socket option is supported
> and is enabled for IPv6 sockets by default.
> erts/doc/src/epmd.xml | 2 +-
> erts/doc/src/erl.xml | 22 +++++
> erts/epmd/src/epmd.c | 6 +-
> erts/epmd/src/epmd_cli.c | 11 ++-
> erts/epmd/src/epmd_int.h | 63 +++++++++----
> erts/epmd/src/epmd_srv.c | 184 +++++++++++++++++++++++++------------
> erts/epmd/test/epmd_SUITE.erl | 33 ++++++-
> lib/kernel/src/erl_epmd.erl | 18 ++--
> lib/kernel/src/inet6_tcp_dist.erl | 2 +-
> 9 files changed, 248 insertions(+), 93 deletions(-)
More information about the erlang-patches