aboutsummaryrefslogtreecommitdiffstats
path: root/dhcpcd-hooks/20-resolv.conf
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpcd-hooks/20-resolv.conf')
-rw-r--r--dhcpcd-hooks/20-resolv.conf107
1 files changed, 0 insertions, 107 deletions
diff --git a/dhcpcd-hooks/20-resolv.conf b/dhcpcd-hooks/20-resolv.conf
deleted file mode 100644
index e757ddf..0000000
--- a/dhcpcd-hooks/20-resolv.conf
+++ /dev/null
@@ -1,107 +0,0 @@
-# Generate /etc/resolv.conf
-# Support resolvconf(8) if available
-# We can merge other dhcpcd resolv.conf files into one like resolvconf,
-# but resolvconf is preferred as other applications like VPN clients
-# can readily hook into it.
-# Also, resolvconf can configure local nameservers such as bind
-# or dnsmasq. This is important as the libc resolver isn't that powerful.
-
-resolv_conf_dir="${state_dir}/resolv.conf"
-
-build_resolv_conf()
-{
- local cf="/etc/resolv.conf.${interface}"
- local interfaces= header= search= srvs= servers= x=
-
- # Build a list of interfaces
- interfaces=$(list_interfaces "${resolv_conf_dir}")
-
- # Build the resolv.conf
- if [ -n "${interfaces}" ]; then
- # Build the header
- for x in ${interfaces}; do
- header="${header}${header:+, }${x}"
- done
-
- # Build the search list
- search=$(cd "${resolv_conf_dir}"; \
- key_get_value "search " ${interfaces})
- [ -n "${search}" ] && search="search $(uniqify ${search})\n"
-
- # Build the nameserver list
- srvs=$(cd "${resolv_conf_dir}"; \
- key_get_value "nameserver " ${interfaces})
- for x in $(uniqify ${srvs}); do
- servers="${servers}nameserver ${x}\n"
- done
- fi
- header="${signature_base}${header:+ ${from} }${header}"
-
- # Assemble resolv.conf using our head and tail files
- [ -f "${cf}" ] && rm -f "${cf}"
- echo "${header}" > "${cf}"
- if [ -f /etc/resolv.conf.head ]; then
- cat /etc/resolv.conf.head >> "${cf}"
- else
- echo "# /etc/resolv.conf.head can replace this line" >> "${cf}"
- fi
- printf "${search}${servers}" >> "${cf}"
- if [ -f /etc/resolv.conf.tail ]; then
- cat /etc/resolv.conf.tail >> "${cf}"
- else
- echo "# /etc/resolv.conf.tail can replace this line" >> "${cf}"
- fi
- mv -f "${cf}" /etc/resolv.conf
-}
-
-add_resolv_conf()
-{
- local x= conf="${signature}\n"
-
- # If we don't have any configuration, remove it
- if [ -z "${new_domain_name_servers}" -a \
- -z "${new_domain_name}" -a \
- -z "${new_domain_search}" ]; then
- remove_resolv_conf
- return $?
- fi
-
- if [ -n "${new_domain_search}" ]; then
- conf="${conf}search ${new_domain_search}\n"
- elif [ -n "${new_domain_name}" ]; then
- conf="${conf}search ${new_domain_name}\n"
- fi
- for x in ${new_domain_name_servers}; do
- conf="${conf}nameserver ${x}\n"
- done
- if type resolvconf >/dev/null 2>&1; then
- printf "${conf}" | resolvconf -a "${interface}"
- return $?
- fi
-
- if [ -e "${resolv_conf_dir}/${interface}" ]; then
- rm -f "${resolv_conf_dir}/${interface}"
- fi
- if [ ! -d "${resolv_conf_dir}" ]; then
- mkdir -p "${resolv_conf_dir}"
- fi
- printf "${conf}" > "${resolv_conf_dir}/${interface}"
- build_resolv_conf
-}
-
-remove_resolv_conf()
-{
- if type resolvconf >/dev/null 2>&1; then
- resolvconf -d "${interface}" -f
- else
- if [ -e "${resolv_conf_dir}/${interface}" ]; then
- rm -f "${resolv_conf_dir}/${interface}"
- fi
- build_resolv_conf
- fi
-}
-
-case "${reason}" in
-BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT) add_resolv_conf;;
-PREINIT|EXPIRE|FAIL|IPV4LL|RELEASE|STOP) remove_resolv_conf;;
-esac