add patch from #2111
add patch from #2111

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8106 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/package/base-files/files/etc/functions.sh
+++ b/package/base-files/files/etc/functions.sh
@@ -146,14 +146,16 @@
 
 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
 }
 

--- a/package/base-files/files/etc/rc.common
+++ b/package/base-files/files/etc/rc.common
@@ -67,24 +67,26 @@
 }
 
 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"

comments