package/busybox/udhcpc.script: ensure action argument is correctly passed to hook...
authorPeter Korsgaard <peter@korsgaard.com>
Tue, 17 Aug 2021 10:19:22 +0000 (12:19 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 17 Aug 2021 10:19:22 +0000 (12:19 +0200)
commit f79a420825479c47d (package/busybox/udhcpc.script: support RFC3442
static routes) used 'set --' clobbering the positional arguments, causing
the action argument to not be correctly forwarded to hook scripts for the
renew / bound cases if static routes are provided by the server.

As a workaround, save the action argument at the beginning of the script and
use that when calling hook scripts.

Reported-by: 王琦 <wangwangqi2011@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/busybox/udhcpc.script

index c73ad6c2efcec83b070442865b6a49dd69639889..74dc5532b93406af37e36842d35c5a2d8f200a4b 100755 (executable)
@@ -4,6 +4,7 @@
 
 [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
 
+ACTION="$1"
 RESOLV_CONF="/etc/resolv.conf"
 [ -e $RESOLV_CONF ] || touch $RESOLV_CONF
 [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
@@ -29,7 +30,7 @@ wait_for_ipv6_default_route() {
        printf " timeout!\n"
 }
 
-case "$1" in
+case "$ACTION" in
        deconfig)
                /sbin/ifconfig $interface up
                /sbin/ifconfig $interface 0.0.0.0
@@ -115,7 +116,7 @@ esac
 HOOK_DIR="$0.d"
 for hook in "${HOOK_DIR}/"*; do
     [ -f "${hook}" -a -x "${hook}" ] || continue
-    "${hook}" "${@}"
+    "${hook}" "$ACTION"
 done
 
 exit 0