summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-11-25 08:34:47 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-11-25 08:34:47 +0000
commit0eed0af1d6d697a9fd82271544cfb3e38062861f (patch)
treeac2e447b5ba9a711c913ab31623f1a1e4a324a33 /package
parent7529b8b679ae1dd8b6b1e7c97e3890c3d0bc6505 (diff)
procd: update procd.sh to make use of the new validate_data tool
Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38908 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/system/procd/files/procd.sh60
1 files changed, 8 insertions, 52 deletions
diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh
index d058c4ff5e..ddb6d95e68 100644
--- a/package/system/procd/files/procd.sh
+++ b/package/system/procd/files/procd.sh
@@ -217,59 +217,15 @@ _procd_kill() {
uci_validate_section()
{
- local error=0
-
- [ "$4" = "" ] && return 1
- [ "$3" = "" ] && {
- json_add_object
- json_add_string "package" "$1"
- json_add_string "type" "$2"
- json_add_object "data"
-
- shift; shift; shift
-
- while [ -n "$1" ]; do
- local tmp=${1#*:}
- json_add_string "${1%%:*}" "${tmp%%:*}"
- shift
- done
-
- json_close_object
- json_close_object
- return 0
- }
-
- local section="${3}"
- config_load "${1}"
+ local package="$1"
+ local type="$2"
+ local name="$3"
+ local error
shift; shift; shift
-
- while [ -n "$1" ]; do
- local name=${1%%:*}
- local tmp=${1#*:}
- local type=${tmp%%:*}
- local default=""
-
- [ "$tmp" = "$type" ] || default=${tmp#*:}
-
- shift
- config_get "${name}" "${section}" "${name}"
- eval val=\$$name
-
- [ "$type" = "bool" ] && {
- case "$val" in
- 1|on|true|enabled) val=1;;
- 0|off|false|disabled) val=0;;
- *) val="";;
- esac
- }
- [ -z "$val" ] && val=${default}
- eval $name=\"$val\"
- [ -z "$val" ] || {
- /sbin/validate_data "${type}" "${val}"
- [ $? -eq 0 ] || error="$((error + 1))"
- }
- done
-
+ local result=`/sbin/validate_data "$package" "$type" "$name" $@ 2> /dev/null`
+ error=$?
+ eval "$result"
+ [ "$error" = "0" ] || `/sbin/validate_data "$package" "$type" "$name" $@ 1> /dev/null`
return $error
}