summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpackage/base-files/files/etc/functions.sh6
-rwxr-xr-xpackage/base-files/files/etc/rc.common24
2 files changed, 17 insertions, 13 deletions
diff --git a/package/base-files/files/etc/functions.sh b/package/base-files/files/etc/functions.sh
index 4446931d5..a613e1190 100755
--- a/package/base-files/files/etc/functions.sh
+++ b/package/base-files/files/etc/functions.sh
@@ -146,14 +146,16 @@ config_set() {
config_foreach() {
local function="$1"
- local type="$2"
+ [ "$#" -ge 1 ] && shift
+ local type="$1"
+ [ "$#" -ge 1 ] && shift
local section cfgtype
[ -z "$CONFIG_SECTIONS" ] && return 0
for section in ${CONFIG_SECTIONS}; do
config_get cfgtype "$section" TYPE
[ -n "$type" -a "x$cfgtype" != "x$type" ] && continue
- eval "$function \"\$section\""
+ eval "$function \"\$section\" \"\$@\""
done
}
diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common
index 4ffc79890..99e2a5db6 100755
--- a/package/base-files/files/etc/rc.common
+++ b/package/base-files/files/etc/rc.common
@@ -67,24 +67,26 @@ EOF
}
initscript="$1"
-action="$2"
+[ "$#" -ge 1 ] && shift
+action="$1"
+[ "$#" -ge 1 ] && shift
. "$initscript"
cmds=
for cmd in $EXTRA_COMMANDS; do
- cmds="${cmds:+$cmds$N}$cmd) $cmd;;"
+ cmds="${cmds:+$cmds$N}$cmd) $cmd \"\$@\";;"
done
eval "case \"\$action\" in
- start) start;;
- stop) stop;;
- reload) reload || restart;;
- restart) restart;;
- boot) boot;;
- shutdown) shutdown;;
- enable) enable;;
- enabled) enabled;;
- disable) disable;;
+ start) start \"\$@\";;
+ stop) stop \"\$@\";;
+ reload) reload \"\$@\" || restart \"\$@\";;
+ restart) restart \"\$@\";;
+ boot) boot \"\$@\";;
+ shutdown) shutdown \"\$@\";;
+ enable) enable \"\$@\";;
+ enabled) enabled \"\$@\";;
+ disable) disable \"\$@\";;
$cmds
*) help;;
esac"