s6-dns: the s6-dnssrv program
Keywords: s6-dns client s6-dnssrv domain name srv rr field service

s6-dns
Software
skarnet.org

# The s6-dnssrv program

s6-dnssrv finds the SRV information associated to a service name, protocol name and domain name.

## Interface

         s6-dnssrv [ -q ] [ -r ] [ -t timeout ] service proto domain

- s6-dnssrv makes an SRV query for _service._proto.domain. It waits for the result and prints the obtained information line by line, then exits 0. It prints the priority, the weight, the port number and the target, in that order, separated by spaces.
- If the domain exists but no relevant field has been found, it exits 1.
- If the DNS answered but no answer is available, it prints a relevant error message and exits 2.
- By default, s6-dnssrv looks for DNS cache addresses in the `/etc/resolv.conf` file. If the DNSCACHEIP environment variable is set and contains a list of IP (v4 or v6) addresses, separated by commas, semicolons, spaces, tabs, newlines or carriage returns, then this list is used instead.

## Options

- `-q` : qualify. Qualifies domain before resolution, according to suffixes found in `/etc/resolv.conf`. If the DNSQUALIFY environment variable is set and contains a list of suffixes separated by spaces, tabs, newlines or carriage returns, then this list is used instead. By default, no qualification is used: if domain is not a FQDN, a dot is just appended to it.
- `-r` : random. By default, the program does not sort the result, but prints them in the order received from the DNS. With this option, it performs a random permutation on the results before printing them.
- `-t` timeout : if the resolution takes more than timeout milliseconds, then it exits 99 right away with an error message. By default, timeout is 0, which means no timeout.