Erlang interface towards epmd
This module communicates with the EPMD daemon, see epmd. To implement your own epmd module please see ERTS User's Guide: How to Implement an Alternative Service Discovery for Erlang Distribution
Functions
start_link() -> {ok, pid()} | ignore | {error, term()}
This function is invoked as this module is added as a child of the
erl_distribution supervisor.
register_node(Name, Port) -> Result
Name = string()Port = Creation = integer() >= 0Result = {ok, Creation} | {error, already_registered} | term()
register_node(Name, Port, Driver) -> Result
Name = string()Port = integer() >= 0Driver = inet_tcp | inet6_tcp | inet | inet6Creation = integer() >= 0Result = {ok, Creation} | {error, already_registered} | term()
Registers the node with epmd and tells epmd what port will be
used for the current node. It returns a creation number. This number is
incremented on each register to help with identifying if a node is
reconnecting to epmd.
port_please(Name, Host) -> {ok, Port, Version} | noport
Name = atom() | string()Host = atom() | string() | inet:ip_address()Port = Version = integer() >= 0
port_please(Name, Host, Timeout) -> {ok, Port, Version} | noport
Name = atom() | string()Host = atom() | string() | inet:ip_address()Timeout = integer() >= 0 | infinityPort = Version = integer() >= 0
Requests the distribution port for the given node of an EPMD instance. Together with the port it returns a distribution protocol version which has been 5 since Erlang/OTP R6.
address_please(Name, Host, AddressFamily) ->
Success | {error, term()}
Name = string()Host = string() | inet:ip_address()AddressFamily = inet | inet6Port = Version = integer() >= 0Success =
{ok, inet:ip_address()} |
{ok, inet:ip_address(), Port, Version}
Called by the distribution module. Resolves the Host to an IP
address.
Another epmd module may return port and distribution protocol version as well.
names(Host) -> {ok, [{Name, Port}]} | {error, Reason}
Host = atom() | string() | inet:ip_address()Name = string()Port = integer() >= 0Reason = address | file:posix()
Called by net_adm:names/0.
Host defaults to the localhost. Returns the names and associated
port numbers of the Erlang nodes that epmd registered at the
specified host. Returns {error, address} if epmd is not
operational.
Example:
(arne@dunn)1> erl_epmd:names(localhost).
{ok,[{"arne",40262}]}