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:
parent
b7f8411df2
commit
9201145d02
@ -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
|
||||
;;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user