Re: [PATCH] epmd: support IPv6 node registration

Michael Santos <[email protected]>
Newsgroups gmane.comp.lang.erlang.patches
Message-ID <20130503143237.GA27361@ioctl>
On Fri, May 03, 2013 at 04:04:13PM +0200, Fredrik wrote:
> 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

I *think* the last version of the patch fixes the link error on Windows
(haven't tested it). It sets the Windows version as suggested by Patrik
Nyblom.

Sorry for the confusion. I can re-send the patch or I can post it to
github.
_______________________________________________
erlang-patches mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.