# Path to the configuration file of the DNS resolver.
RESOLV_CONF="/etc/resolv.conf"
-function dns_get_hostname() {
+dns_get_hostname() {
local address=${1}
assert isset address
)
}
-function dns_server_list() {
+dns_server_list() {
[ -r "${DNS_SERVER_CONFIG_FILE}" ] || return ${EXIT_OK}
local line
local ${NETWORK_CONFIG_DNS_SERVER_PARAMS}
-
- local format="%-20s %-8s"
- print "${format}" "SERVER" "PRIORITY"
-
- while read -r line; do
+ while read line; do
dns_server_parse_line ${line} || continue
- print "${format}" "${server}" "${priority}"
+ print "${server}"
done < ${DNS_SERVER_CONFIG_FILE}
return ${EXIT_OK}
}
-function dns_server_list_sorted() {
+dns_server_list_sorted() {
[ -r "${DNS_SERVER_CONFIG_FILE}" ] || return ${EXIT_OK}
local servers=$(
return ${EXIT_OK}
}
-function dns_server_add() {
+dns_server_show() {
+ [ -r "${DNS_SERVER_CONFIG_FILE}" ] || return ${EXIT_OK}
+
+ local line
+ local ${NETWORK_CONFIG_DNS_SERVER_PARAMS}
+
+ local format="%-20s %-8s"
+ print "${format}" "SERVER" "PRIORITY"
+
+ while read -r line; do
+ dns_server_parse_line ${line} || continue
+
+ print "${format}" "${server}" "${priority}"
+ done < ${DNS_SERVER_CONFIG_FILE}
+
+ return ${EXIT_OK}
+}
+
+dns_server_add() {
local server=${1}
assert isset server
return ${EXIT_OK}
}
-function dns_server_exists() {
+dns_server_exists() {
local entry=${1}
assert isset entry
return ${EXIT_FALSE}
}
-function dns_server_remove() {
+dns_server_remove() {
local entry=${1}
assert isset entry
return ${EXIT_OK}
}
-function dns_server_flush() {
+dns_server_flush() {
: > ${DNS_SERVER_CONFIG_FILE}
}
-function dns_server_parse_line() {
+dns_server_parse_line() {
local arg
for arg in ${NETWORK_CONFIG_DNS_SERVER_PARAMS}; do
return ${EXIT_OK}
}
+# This function should be called after any configuration
+# changes have been made to the DNS servers.
+dns_server_update() {
+ # Regenerate /etc/resolv.conf
+ dns_generate_resolvconf
+
+ # Restart radvd which propagates IPv6 DNS servers
+ radvd_update
+}
+
# Update resolv.conf(5) when initializing the network.
init_register dns_generate_resolvconf
-function dns_generate_resolvconf() {
+dns_generate_resolvconf() {
local file=${RESOLV_CONF}
log INFO "Updating resolver configuration..."
done >> ${file}
}
-function dns_get_search_domains() {
+dns_get_search_domains() {
# Add search domains.
local search_domains="$(unquote ${DNS_SEARCH_DOMAINS})"
for zone in $(zones_get_all); do
for proto in ${IP_SUPPORTED_PROTOCOLS}; do
- domain=$(routing_db_get ${zone} ${proto} domain-name)
+ domain="$(db_get "${zone}/${proto}/domain-name")"
isset domain || continue
list_append search_domains "${domainname}"
done
done
+ # Add our own domain
+ list_append search_domains "$(config_domainname)"
+
# Sort out duplicate entries.
list_unique ${search_domains}
}
-function dns_server_get_zone_name_servers() {
+dns_server_get_zone_name_servers() {
local priority proto server servers zone
for zone in $(zones_get_all); do
for proto in ${IP_SUPPORTED_PROTOCOLS}; do
- priority=$(routing_db_get ${zone} ${proto} domain-name-servers-priority)
+ priority="$(db_get "${zone}/${proto}/domain-name-servers-priority")"
isset priority || priority="${DNS_SERVER_DYNAMIC_PRIORITY}"
- servers=$(routing_db_get ${zone} ${proto} domain-name-servers)
+ servers="$(db_get "${zone}/${proto}/domain-name-servers")"
for server in ${servers}; do
print "${priority} ${server}"
done