Use resolvconf(8) to update /etc/resolv.conf.

If you don't want to use resolvconf(8) to update /etc/resolv.conf,
you can put resolvconf_enable="NO" into /etc/dhclient-enter-hooks.
This commit is contained in:
Hajimu UMEMOTO 2011-03-18 12:23:20 +00:00
parent b7f8411df2
commit 9201145d02
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219739

View File

@ -216,30 +216,41 @@ add_new_resolv_conf() {
cat /etc/resolv.conf.tail >>$tmpres
fi
# When resolv.conf is not changed actually, we don't
# need to update it.
# If /usr is not mounted yet, we cannot use cmp, then
# the following test fails. In such case, we simply
# ignore an error and do update resolv.conf.
if cmp -s $tmpres /etc/resolv.conf; then
rm -f $tmpres
return 0
fi 2>/dev/null
case $resolvconf_enable in
# "no", "false", "off", or "0"
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
# When resolv.conf is not changed actually, we don't
# need to update it.
# If /usr is not mounted yet, we cannot use cmp, then
# the following test fails. In such case, we simply
# ignore an error and do update resolv.conf.
if cmp -s $tmpres /etc/resolv.conf; then
rm -f $tmpres
return 0
fi 2>/dev/null
# In case (e.g. during OpenBSD installs) /etc/resolv.conf
# is a symbolic link, take care to preserve the link and write
# the new data in the correct location.
# In case (e.g. during OpenBSD installs)
# /etc/resolv.conf is a symbolic link, take
# care to preserve the link and write the new
# data in the correct location.
if [ -f /etc/resolv.conf ]; then
cat /etc/resolv.conf > /etc/resolv.conf.save
fi
cat $tmpres > /etc/resolv.conf
# Try to ensure correct ownership and permissions.
chown -RL root:wheel /etc/resolv.conf
chmod -RL 644 /etc/resolv.conf
;;
*)
/sbin/resolvconf -a ${interface} < $tmpres
;;
esac
if [ -f /etc/resolv.conf ]; then
cat /etc/resolv.conf > /etc/resolv.conf.save
fi
cat $tmpres > /etc/resolv.conf
rm -f $tmpres
# Try to ensure correct ownership and permissions.
chown -RL root:wheel /etc/resolv.conf
chmod -RL 644 /etc/resolv.conf
return 0
fi
@ -296,6 +307,8 @@ if [ -f /etc/dhclient-enter-hooks ]; then
fi
fi
: ${resolvconf_enable="YES"}
case $reason in
MEDIUM)
eval "$IFCONFIG $interface $medium"
@ -349,9 +362,17 @@ EXPIRE|FAIL)
# XXX Why add alias we just deleted above?
add_new_alias
if is_default_interface; then
if [ -f /etc/resolv.conf.save ]; then
cat /etc/resolv.conf.save > /etc/resolv.conf
fi
case $resolvconf_enable in
# "no", "false", "off", or "0"
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
if [ -f /etc/resolv.conf.save ]; then
cat /etc/resolv.conf.save > /etc/resolv.conf
fi
;;
*)
/sbin/resolvconf -d ${interface}
;;
esac
fi
;;