Documentation ¶
Overview ¶
Package resolvconf provides utility code to query and update DNS configuration in /etc/resolv.conf
Index ¶
Constants ¶
const ( IP = iota // IPv4 and IPv6 IPv4 IPv6 )
constants for the IP address type
Variables ¶
This section is empty.
Functions ¶
func GetNameservers ¶
GetNameservers returns nameservers (if any) listed in /etc/resolv.conf
func GetNameserversAsCIDR ¶
GetNameserversAsCIDR returns nameservers (if any) listed in /etc/resolv.conf as CIDR blocks (e.g., "1.2.3.4/32") This function's output is intended for net.ParseCIDR
func GetOptions ¶
GetOptions returns options (if any) listed in /etc/resolv.conf If more than one options line is encountered, only the contents of the last one is returned.
func GetSearchDomains ¶
GetSearchDomains returns search domains (if any) listed in /etc/resolv.conf If more than one search line is encountered, only the contents of the last one is returned.
func Path ¶
func Path() string
Path returns the path to the resolv.conf file that libnetwork should use.
When /etc/resolv.conf contains 127.0.0.53 as the only nameserver, then it is assumed systemd-resolved manages DNS. Because inside the container 127.0.0.53 is not a valid DNS server, Path() returns /run/systemd/resolve/resolv.conf which is the resolv.conf that systemd-resolved generates and manages. Otherwise Path() returns /etc/resolv.conf.
Errors are silenced as they will inevitably resurface at future open/read calls.
More information at https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html#/etc/resolv.conf
Types ¶
type File ¶
File contains the resolv.conf content and its hash
func Build ¶
Build generates and writes a configuration file to path containing a nameserver entry for every element in nameservers, a "search" entry for every element in dnsSearch, and an "options" entry for every element in dnsOptions. It returns a File containing the generated content and its (sha256) hash.
func FilterResolvDNS ¶
FilterResolvDNS cleans up the config in resolvConf. It has two main jobs:
- It looks for localhost (127.*|::1) entries in the provided resolv.conf, removing local nameserver entries, and, if the resulting cleaned config has no defined nameservers left, adds default DNS entries
- Given the caller provides the enable/disable state of IPv6, the filter code will remove all IPv6 nameservers if it is not enabled for containers
func GetSpecific ¶
GetSpecific returns the contents of the user specified resolv.conf file and its hash