MdnsLite.Options (mdns_lite v0.9.1)
View SourceMdnsLite options
MdnsLite is usually configured in a project's application environment
(config.exs) as follows:
config :mdns_lite,
hosts: [:hostname, "nerves"],
ttl: 120,
instance_name: "mDNS Lite Device",
services: [
%{
id: :web_server,
protocol: "http",
transport: "tcp",
port: 80,
txt_payload: ["key=value"]
},
%{
id: :ssh_daemon,
instance_name: "More particular mDNS Lite Device",
protocol: "ssh",
transport: "tcp",
port: 22
}
]The configurable keys are:
:hosts- A list of hostnames to respond to. Normally this would be set to:hostnameandmdns_litewill advertise the actual hostname with.localappended.:ttl- The default mDNS record time-to-live. The default of 120 seconds is probably fine for most use. See RFC 6762 - Multicast DNS for considerations.instance_name- A user friendly name that will be used as the name for this device's advertised service(s). Per RFC6763 Appendix C, this should describe the user-facing purpose or description of the device, and should not be considered a unique identifier. For example, 'Nerves Device' and 'MatCo Laser Printer Model CRM-114' are good choices here. If instance_name is not defined it defaults to the first entry in thehostslist:excluded_ifnames- A list of network interfaces names to ignore. By default,mdns_litewill ignore loopback and cellular network interfaces.:ipv4_only- Set totrueto only respond on IPv4 interfaces. Since IPv6 isn't fully supported yet, this is the default. Note that it's still possible to get AAAA records when using IPv4.:if_monitor- Set toMdnsLite.VintageNetMonitorwhen using Nerves orMdnsLite.InetMonitorelsewhere. The default isMdnsLite.VintageNetMonitor.:dns_bridge_enabled- Set totrueto start a DNS server running that will bridge DNS to mDNS.:dns_bridge_ip- The IP address for the DNS server. Defaults to 127.0.0.53.:dns_bridge_port- The UDP port for the DNS server. Defaults to 53.:dns_bridge_recursive- If a regular DNS request comes on the DNS bridge, forward it to a DNS server rather than returning an error. This is the default since there's an issue on Linux and Nerves that prevents Erlang's DNS resolver from checking the next one.:services- A list of services to advertise. SeeMdnsLite.servicefor details.
Some options are modifiable at runtime. Functions for modifying these are in
the MdnsLite module.
Summary
Functions
Normalize a service description
Functions
@spec normalize_service(MdnsLite.service()) :: {:ok, MdnsLite.service()} | {:error, String.t()}
Normalize a service description
All service descriptions are normalized before use. Call this function if you're unsure how the service description will be transformed for use.