add support for -t 0 (infinite retry) in busybox udhcpc and use it in the network...
authorFelix Fietkau <nbd@openwrt.org>
Thu, 9 Nov 2006 23:41:50 +0000 (23:41 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 9 Nov 2006 23:41:50 +0000 (23:41 +0000)
SVN-Revision: 5493

package/base-files/default/lib/network/config.sh
package/busybox/patches/240-udhcpc_retries.patch [new file with mode: 0644]

index 32558de8f355a9d53aceecbf5e26bf782574e0d5..762ca8bc1e4597dc461cdc9afcd1825cd14dde23 100755 (executable)
@@ -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 (file)
index 0000000..3142eac
--- /dev/null
@@ -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 */