[OE-core] [PATCH] busybox: port improvements to simple.script from Debian (udhcpc)

Andreas Oberritter obi at opendreambox.org
Fri May 4 13:09:38 UTC 2012


* Support resolvconf
* Avoid bashism $((metric++))
* Use 'domain' instead of 'search' for domain parameter

Signed-off-by: Andreas Oberritter <obi at opendreambox.org>
---
* This patch is based on the denzil branch.
* This patch requires "busybox: remove unused patches for simple.script (udhcpc)",
  because of the PR bump.

 meta/recipes-core/busybox/busybox_1.19.4.bb   |    2 +-
 meta/recipes-core/busybox/files/simple.script |   27 ++++++++++++++++++-------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-core/busybox/busybox_1.19.4.bb b/meta/recipes-core/busybox/busybox_1.19.4.bb
index 30dd333..0b1e787 100644
--- a/meta/recipes-core/busybox/busybox_1.19.4.bb
+++ b/meta/recipes-core/busybox/busybox_1.19.4.bb
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script
index 5cc21b9..27368f0 100644
--- a/meta/recipes-core/busybox/files/simple.script
+++ b/meta/recipes-core/busybox/files/simple.script
@@ -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
 
-- 
1.7.9.5





More information about the Openembedded-core mailing list