busybox: port improvements to simple.script from Debian (udhcpc)
authorAndreas Oberritter <obi@opendreambox.org>
Fri, 4 May 2012 13:09:38 +0000 (15:09 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 4 May 2012 15:44:59 +0000 (16:44 +0100)
* Support resolvconf
* Avoid bashism $((metric++))
* Use 'domain' instead of 'search' for domain parameter

(From OE-Core rev: 3d4ccf98b83fe662f375cd5b029fdd602824c0e8)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/busybox/busybox_1.19.4.bb
meta/recipes-core/busybox/files/simple.script

index 0b1e787..a797ac9 100644 (file)
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
index 5cc21b9..27368f0 100644 (file)
@@ -20,6 +20,9 @@ fi
 
 case "$1" in
        deconfig)
+               if [ -x /sbin/resolvconf ]; then
+                       /sbin/resolvconf -d "${interface}.udhcpc"
+               fi
                if ! root_is_nfs ; then
                         if [ $have_bin_ip -eq 1 ]; then
                                 ip addr flush dev $interface
@@ -53,19 +56,29 @@ case "$1" in
                        metric=0
                        for i in $router ; do
                                 if [ $have_bin_ip -eq 1 ]; then
-                                        ip route add default via $i metric $((metric++))
+                                        ip route add default via $i metric $metric
                                 else
-                                        route add default gw $i dev $interface metric $((metric++)) 2>/dev/null
+                                        route add default gw $i dev $interface metric $metric 2>/dev/null
                                 fi
+                                metric=$(($metric + 1))
                        done
                fi
 
-               echo -n > $RESOLV_CONF
-               [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
-               for i in $dns ; do
-                       echo adding dns $i
-                       echo nameserver $i >> $RESOLV_CONF
+               # Update resolver configuration file
+               R=""
+               [ -n "$domain" ] && R="domain $domain
+"
+               for i in $dns; do
+                       echo "$0: Adding DNS $i"
+                       R="${R}nameserver $i
+"
                done
+
+               if [ -x /sbin/resolvconf ]; then
+                       echo -n "$R" | /sbin/resolvconf -a "${interface}.udhcpc"
+               else
+                       echo -n "$R" > "$RESOLV_CONF"
+               fi
                ;;
 esac