diff options
| -rwxr-xr-x | package/base-files/files/etc/functions.sh | 6 | ||||
| -rwxr-xr-x | package/base-files/files/etc/rc.common | 24 | 
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" | 
