diff options
author | John Crispin <blogic@openwrt.org> | 2013-11-20 16:56:41 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-11-20 16:56:41 +0000 |
commit | 50577494080e865ce4758c004d1e9249ab1343bd (patch) | |
tree | 561e008fe6d1576328aabd7c178ba9babd44ef30 /package/system/ubox | |
parent | 3b9b5d38fa3877a769caa4bcf1ac1e521ebb0023 (diff) | |
download | master-187ad058-50577494080e865ce4758c004d1e9249ab1343bd.tar.gz master-187ad058-50577494080e865ce4758c004d1e9249ab1343bd.tar.bz2 master-187ad058-50577494080e865ce4758c004d1e9249ab1343bd.zip |
procd: add validation to the log init script
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38879 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/system/ubox')
-rw-r--r-- | package/system/ubox/files/log.init | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/package/system/ubox/files/log.init b/package/system/ubox/files/log.init index 7676ec379b..a1e910f519 100644 --- a/package/system/ubox/files/log.init +++ b/package/system/ubox/files/log.init @@ -8,14 +8,27 @@ STOP=89 USE_PROCD=1 PROG=/sbin/logread +validate_log_section() +{ + uci_validate_section system system "${1}" \ + 'Password:string' \ + 'log_size:uinteger' \ + 'log_ip:ipaddr' \ + 'log_port:port:514' \ + 'log_proto:or("tcp", "udp"):udp' \ + 'log_prefix:string' + return $? +} + start_service_file() { local pid_file="/var/run/logread.${PIDCOUNT}.pid" local log_file log_size - config_get log_file $1 log_file - config_get log_size $1 log_size - + validate_log_section "${1}" || { + echo "validation failed" + return 1 + } [ -z "${log_file}" ] && return procd_open_instance @@ -27,17 +40,16 @@ start_service_file() start_service_remote() { local pid_file="/var/run/logread.${PIDCOUNT}.pid" - local log_ip log_port log_proto - - config_get log_ip $1 log_ip - config_get log_port $1 log_port - config_get log_proto $1 log_proto udp - config_get log_prefix $1 log_prefix + local log_ip log_port log_proto log_prefix + validate_log_section "${1}" || { + echo "validation failed" + return 1 + } [ -z "${log_ip}" ] && return procd_open_instance - procd_set_param command "$PROG" -f -r "$log_ip" "${log_port:-514}" -p "$pid_file" + procd_set_param command "$PROG" -f -r "$log_ip" "${log_port}" -p "$pid_file" [ "${log_proto}" != "udp" ] || procd_append_param command -u [ -z "${log_prefix}" ] || procd_append_param command -P ${log_prefix} procd_close_instance @@ -46,6 +58,7 @@ start_service_remote() service_triggers() { procd_add_config_trigger "system" "/etc/init.d/log" "start" + procd_add_validation validate_log_section } start_service() |