Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/dhcp/clientscript Use resolvconf(8) to manage /etc/...



details:   https://anonhg.NetBSD.org/src/rev/33ac52668c35
branches:  trunk
changeset: 749195:33ac52668c35
user:      roy <roy%NetBSD.org@localhost>
date:      Sat Nov 21 07:53:59 2009 +0000

description:
Use resolvconf(8) to manage /etc/resolv.conf

diffstat:

 usr.sbin/dhcp/clientscript/dhclient-script |  49 ++++++++++++++++-------------
 1 files changed, 27 insertions(+), 22 deletions(-)

diffs (72 lines):

diff -r 9f298d137c24 -r 33ac52668c35 usr.sbin/dhcp/clientscript/dhclient-script
--- a/usr.sbin/dhcp/clientscript/dhclient-script        Sat Nov 21 05:54:04 2009 +0000
+++ b/usr.sbin/dhcp/clientscript/dhclient-script        Sat Nov 21 07:53:59 2009 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: dhclient-script,v 1.12 2006/10/08 17:09:32 riz Exp $
+# $NetBSD: dhclient-script,v 1.13 2009/11/21 07:53:59 roy Exp $
 
 ENTERHOOKS=/etc/dhclient-enter-hooks
 EXITHOOKS=/etc/dhclient-exit-hooks
@@ -8,34 +8,39 @@
 SIGNATURE="# Created by dhclient from"
 INTSIG="$SIGNATURE $interface"
 
+echo_resolv_conf() {
+       echo "$INTSIG"
+       echo search $new_domain_name
+       for nameserver in $new_domain_name_servers; do
+               echo nameserver $nameserver
+       done
+}
+
 make_resolv_conf() {
        if [ ! -z "$new_domain_name_servers" ]; then
-               if [ -f $RESOLV ]
-               then
-                       while read line; do
-                               case $line in
-                               "$SIGNATURE"*)
-                                       ;;
-                               *)
-                                       mv $RESOLV $RESOLV.save;;
-                               esac
-                               break
-                       done < $RESOLV
+               if [ -x /sbin/resolvconf ]; then
+                       echo_resolv_conf | /sbin/resolvconf -a $interface
+               else
+                       if [ -f $RESOLV ]; then
+                               while read line; do
+                                       case $line in
+                                       "$SIGNATURE"*)
+                                               ;;
+                                       *)
+                                               mv $RESOLV $RESOLV.save;;
+                                       esac
+                                       break
+                               done < $RESOLV
+                       fi
+                       echo_resolv_conf > $RESOLV
                fi
-               echo "$INTSIG" > $RESOLV
-               if [ ! -z "$new_domain_name" ]
-               then
-                       echo search $new_domain_name >> $RESOLV
-               fi
-               for nameserver in $new_domain_name_servers; do
-                       echo nameserver $nameserver
-               done >> $RESOLV
        fi
 }
 
 restore_resolv_conf() {
-       if [ -f $RESOLV.save -a -f $RESOLV ]
-       then
+       if [ -x /sbin/resolvconf ]; then
+               /sbin/resolvconf -d $interface
+       elif [ -f $RESOLV.save -a -f $RESOLV ]; then
                while read line; do
                        case $line in
                        "$INTSIG"*)



Home | Main Index | Thread Index | Old Index