summaryrefslogtreecommitdiff
path: root/package/busybox
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox')
-rw-r--r--package/busybox/busybox.mk5
-rwxr-xr-xpackage/busybox/udhcpc.script39
2 files changed, 43 insertions, 1 deletions
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index b7f474091..1010df38d 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -141,7 +141,10 @@ endif
define BUSYBOX_INSTALL_TARGET_CMDS
$(BUSYBOX_INSTALL_BINARY)
- -chmod a+rx $(TARGET_DIR)/usr/share/udhcpc/default.script
+ if [ ! -f $(TARGET_DIR)/usr/share/udhcpc/default.script ]; then \
+ $(INSTALL) -m 0755 -D package/busybox/udhcpc.script \
+ $(TARGET_DIR)/usr/share/udhcpc/default.script; \
+ fi
endef
define BUSYBOX_UNINSTALL_TARGET_CMDS
diff --git a/package/busybox/udhcpc.script b/package/busybox/udhcpc.script
new file mode 100755
index 000000000..a52a7f812
--- /dev/null
+++ b/package/busybox/udhcpc.script
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# udhcpc script edited by Tim Riker <Tim@Rikers.org>
+
+[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+
+RESOLV_CONF="/etc/resolv.conf"
+[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
+[ -n "$subnet" ] && NETMASK="netmask $subnet"
+
+case "$1" in
+ deconfig)
+ /sbin/ifconfig $interface 0.0.0.0
+ ;;
+
+ renew|bound)
+ /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
+
+ if [ -n "$router" ] ; then
+ echo "deleting routers"
+ while route del default gw 0.0.0.0 dev $interface ; do
+ :
+ done
+
+ for i in $router ; do
+ route add default gw $i dev $interface
+ 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
+ done
+ ;;
+esac
+
+exit 0