erl_epmd(3erl) Erlang Module Definition erl_epmd(3erl)
NAME
erl_epmd -
Erlang interface towards epmd
DESCRIPTION
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 Node Discovery for Erlang Distribution
EXPORTS
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
register_node(Name, Port, Driver) -> Result
Types:
Name = string()
Port = integer() >= 0
Driver = inet_tcp | inet6_tcp | inet | inet6
Creation = integer() >= 0 | -1
Result = {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
port_please(Name, Host, Timeout) -> {port, Port, Version} | noport
Types:
Name = atom() | string()
Host = atom() | string() | inet:ip_address()
Timeout = integer() >= 0 | infinity
Port = Version = integer() >= 0
Requests the distribution port for the given node of an EPMD in-
stance. Together with the port it returns a distribution proto-
col version which has been 5 since Erlang/OTP R6.
listen_port_please(Name, Host) -> {ok, Port}
Types:
Name = atom()
Host = string() | inet:ip_address()
Port = integer() >= 0
Called by the distribution module to get which port the local
node should listen to when accepting new distribution requests.
address_please(Name, Host, AddressFamily) ->
Success | {error, term()}
Types:
Name = string()
Host = string() | inet:ip_address()
AddressFamily = inet | inet6
Port = Version = integer() >= 0
Success =
{ok, inet:ip_address()} |
{ok, inet:ip_address(), Port, Version}
Called by the distribution module to resolves the Host to an IP
address of a remote node.
As an optimization this function may also return the port and
version of the remote node. If port and version are returned
port_please/3 will not be called.
names(Host) -> {ok, [{Name, Port}]} | {error, Reason}
Types:
Host = atom() | string() | inet:ip_address()
Name = string()
Port = integer() >= 0
Reason = address | file:posix()
Called by net_adm:names/0. Host defaults to the localhost. Re-
turns the names and associated port numbers of the Erlang nodes
that epmd registered at the specified host. Returns {error, ad-
dress} if epmd is not operational.
Example:
(arne@dunn)1> erl_epmd:names(localhost).
{ok,[{"arne",40262}]}
Ericsson AB kernel 7.0 erl_epmd(3erl)