Re: [PATCH] epmd: support IPv6 node registration
Fredrik <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <[email protected]> |
On 05/03/2013 03:44 PM, Fredrik wrote: > On 05/03/2013 03:27 PM, Michael Santos wrote: >> 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 > I thought that I've already mailed you back regarding this patch. But > now I don't seem to remember what I wanted you to do about it. > I will run it in 'pu' builds over the weekend. If it turns out OK it > will be reviewed. > Ok, Found out what I was suppose to mail you about: It does not build on windows; epmd_srv.o : error LNK2019: unresolved external symbol IN6_ARE_ADDR_EQUAL referenced in function conn_local_peer_check epmd_srv.o : error LNK2019: unresolved external symbol IN6_IS_ADDR_LOOPBACK referenced in function conn_local_peer_check ****/bin/win32/epmd.exe : fatal error LNK1120: 2 unresolved externals -- BR Fredrik Gustafsson Erlang OTP Team _______________________________________________ erlang-patches mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-patches