From 6a5d4fafb5c31d2653e8d5ccaa84ed6a337a2425 Mon Sep 17 00:00:00 2001 From: des Date: Sat, 12 May 2018 18:07:53 +0000 Subject: [PATCH] If the sole non-option command line argument is "none", remove any pre-existing forwarder configuration and set Unbound up to recurse. PR: 222902 MFC after: 1 week --- usr.sbin/unbound/setup/local-unbound-setup.sh | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/usr.sbin/unbound/setup/local-unbound-setup.sh b/usr.sbin/unbound/setup/local-unbound-setup.sh index c1c0ece97728..16d735c1c1ce 100755 --- a/usr.sbin/unbound/setup/local-unbound-setup.sh +++ b/usr.sbin/unbound/setup/local-unbound-setup.sh @@ -252,6 +252,18 @@ gen_unbound_conf() { fi } +# +# Rename a file we are about to replace. +# +backup() { + local file="$1" + if [ -f "${file}" ] ; then + local bkfile="${file}.${bkext}" + echo "Original ${file} saved as ${bkfile}" + mv "${file}" "${bkfile}" + fi +} + # # Replace one file with another, making a backup copy of the first, # but only if the new file is different from the old. @@ -263,9 +275,7 @@ replace() { echo "${file} created" mv "${newfile}" "${file}" elif ! cmp -s "${file}" "${newfile}" ; then - local oldfile="${file}.${bkext}" - echo "original ${file} saved as ${oldfile}" - mv "${file}" "${oldfile}" + backup "${file}" mv "${newfile}" "${file}" else echo "${file} not modified" @@ -359,13 +369,20 @@ main() { # from resolv.conf. # forwarders="$@" - if [ -z "$forwarders" ] ; then + case "${forwarders}" in + [Nn][Oo][Nn][Ee]) + forwarders="none" + style=recursing + ;; + "") echo "Extracting forwarders from ${resolv_conf}." forwarders=$(get_nameservers <"${resolv_conf}") style=dynamic - else + ;; + *) style=static - fi + ;; + esac # # Generate forward.conf. @@ -377,6 +394,9 @@ main() { else echo "unbound will recurse." fi + elif [ "${forwarders}" = "none" ] ; then + echo "Forwarding disabled, unbound will recurse." + backup "${forward_conf}" else local tmp_forward_conf=$(mktemp -u "${forward_conf}.XXXXX") gen_forward_conf ${forwarders} | unexpand >"${tmp_forward_conf}"