quic_epmd (quic v1.3.1)

View Source

EPMD replacement module for QUIC distribution.

This module implements the erl_epmd behaviour to provide node discovery without requiring the traditional EPMD daemon. It delegates to the configured discovery backend.

Usage

   erl -proto_dist quic -epmd_module quic_epmd -start_epmd false

Summary

Functions

Get the address for a node. This is called when we need to connect to another node.

List all registered nodes on a host.

Look up a node's port.

Look up a node's port with timeout.

Register this node with the name server.

Register this node with address family.

Start the EPMD replacement. This is a no-op since we don't need a separate process.

Functions

address_please(Name, Host, AddressFamily)

-spec address_please(Name :: string(), Host :: string(), AddressFamily :: inet | inet6) ->
                        {ok, inet:ip_address()} |
                        {ok,
                         inet:ip_address(),
                         Port :: inet:port_number(),
                         Version :: non_neg_integer()} |
                        {error, term()}.

Get the address for a node. This is called when we need to connect to another node.

names(Host)

-spec names(Host :: string()) ->
               {ok, [{Name :: string(), Port :: inet:port_number()}]} | {error, term()}.

List all registered nodes on a host.

port_please(Name, Host)

-spec port_please(Name :: string(), Host :: string()) ->
                     {port, Port :: inet:port_number(), Version :: non_neg_integer()} | noport.

Look up a node's port.

port_please(Name, Host, Timeout)

-spec port_please(Name :: string(), Host :: string(), Timeout :: timeout()) ->
                     {port, Port :: inet:port_number(), Version :: non_neg_integer()} | noport.

Look up a node's port with timeout.

register_node(Name, Port)

-spec register_node(Name :: atom(), Port :: inet:port_number()) ->
                       {ok, Creation :: non_neg_integer()} | {error, term()}.

Register this node with the name server.

register_node(Name, Port, Family)

-spec register_node(Name :: atom(), Port :: inet:port_number(), Family :: inet | inet6) ->
                       {ok, Creation :: non_neg_integer()} | {error, term()}.

Register this node with address family.

start_link()

-spec start_link() -> {ok, pid()} | ignore.

Start the EPMD replacement. This is a no-op since we don't need a separate process.