From: blogic Date: Mon, 25 Nov 2013 08:34:47 +0000 (+0000) Subject: procd: update procd.sh to make use of the new validate_data tool X-Git-Url: https://git.archive.openwrt.org/?a=commitdiff_plain;h=0eed0af1d6d697a9fd82271544cfb3e38062861f;hp=7529b8b679ae1dd8b6b1e7c97e3890c3d0bc6505;p=openwrt.git procd: update procd.sh to make use of the new validate_data tool Signed-off-by: John Crispin git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38908 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- 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 }