svn commit: r219739 - head/sbin/dhclient
Hajimu UMEMOTO
ume at FreeBSD.org
Fri Mar 18 12:23:21 UTC 2011
Author: ume
Date: Fri Mar 18 12:23:20 2011
New Revision: 219739
URL: http://svn.freebsd.org/changeset/base/219739
Log:
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.
Modified:
head/sbin/dhclient/dhclient-script
Modified: head/sbin/dhclient/dhclient-script
==============================================================================
--- head/sbin/dhclient/dhclient-script Fri Mar 18 12:18:52 2011 (r219738)
+++ head/sbin/dhclient/dhclient-script Fri Mar 18 12:23:20 2011 (r219739)
@@ -216,29 +216,40 @@ 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
-
- # 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.
+ 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.
- if [ -f /etc/resolv.conf ]; then
- cat /etc/resolv.conf > /etc/resolv.conf.save
- fi
- cat $tmpres > /etc/resolv.conf
- rm -f $tmpres
+ 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
+ ;;
- # 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
+
+ rm -f $tmpres
return 0
fi
@@ -296,6 +307,8 @@ if [ -f /etc/dhclient-enter-hooks ]; the
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
;;
More information about the svn-src-head
mailing list