Re: [PATCH] epmd: support IPv6 node registration
Michael Santos <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <20130503132750.GK5510@ioctl> |
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: > > http://msdn.microsoft.com/en-us/library/windows/desktop/bb513665(v=vs.85).aspx > > 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(-) ping! _______________________________________________ erlang-patches mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-patches