summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-11-09 23:41:50 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-11-09 23:41:50 +0000
commita2e6a5c0995cbd0e5ecd95ddb42d2c67f3c28c59 (patch)
treed6544ea248c1a61886b95548e1184d988925dbba
parent98a5f85b8caa7f2e067b41e3d1f86ff062921ee7 (diff)
add support for -t 0 (infinite retry) in busybox udhcpc and use it in the network scripts
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5493 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rwxr-xr-xpackage/base-files/default/lib/network/config.sh2
-rw-r--r--package/busybox/patches/240-udhcpc_retries.patch21
2 files changed, 22 insertions, 1 deletions
diff --git a/package/base-files/default/lib/network/config.sh b/package/base-files/default/lib/network/config.sh
index 32558de8f3..762ca8bc1e 100755
--- a/package/base-files/default/lib/network/config.sh
+++ b/package/base-files/default/lib/network/config.sh
@@ -143,7 +143,7 @@ setup_interface() {
# don't stay running in background if dhcp is not the main proto on the interface (e.g. when using pptp)
[ "$proto1" != "$proto" ] && dhcpopts="-n -q"
- $DEBUG udhcpc -i "$iface" ${ipaddr:+-r $ipaddr} ${hostname:+-H $hostname} -b -p "$pidfile" ${dhcpopts:- -R &}
+ $DEBUG udhcpc -t 0 -i "$iface" ${ipaddr:+-r $ipaddr} ${hostname:+-H $hostname} -b -p "$pidfile" ${dhcpopts:- -R &}
lock -u "/var/lock/dhcp-$iface"
;;
*)
diff --git a/package/busybox/patches/240-udhcpc_retries.patch b/package/busybox/patches/240-udhcpc_retries.patch
new file mode 100644
index 0000000000..3142eac6e1
--- /dev/null
+++ b/package/busybox/patches/240-udhcpc_retries.patch
@@ -0,0 +1,21 @@
+diff -ur busybox.old/networking/udhcp/dhcpc.c busybox.dev/networking/udhcp/dhcpc.c
+--- busybox.old/networking/udhcp/dhcpc.c 2006-11-10 00:17:26.000000000 +0100
++++ busybox.dev/networking/udhcp/dhcpc.c 2006-11-10 00:17:10.000000000 +0100
+@@ -330,7 +330,7 @@
+ /* timeout dropped to zero */
+ switch (state) {
+ case INIT_SELECTING:
+- if (packet_num < client_config.retries) {
++ if (!client_config.retries || (packet_num < client_config.retries)) {
+ if (packet_num == 0)
+ xid = random_xid();
+
+@@ -355,7 +355,7 @@
+ break;
+ case RENEW_REQUESTED:
+ case REQUESTING:
+- if (packet_num < client_config.retries) {
++ if (!client_config.retries || (packet_num < client_config.retries)) {
+ /* send request packet */
+ if (state == RENEW_REQUESTED)
+ send_renew(xid, server_addr, requested_ip); /* unicast */