Provided by: erlang-manpages_24.3.4.1+dfsg-1_all bug

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 differentiate a new node instance connecting to epmd with the same name.

              After the node has successfully registered with epmd it will automatically  attempt
              reconnect to the daemon if the connection is broken.

       port_please(Name, Host) ->
                      {port, Port, Version} |
                      noport | closed |
                      {error, term()}

       port_please(Name, Host, Timeout) ->
                      {port, Port, Version} |
                      noport | closed |
                      {error, term()}

              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 instance. Together
              with the port it returns a distribution protocol version which  has  been  5  since
              Erlang/OTP R6.

       listen_port_please(Name, Host) -> {ok, Port}

              Types:

                 Name = atom() | string()
                 Host = atom() | 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. 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}]}