From 0b06f1f51cfa032125e884b0b2e811f2016faac4 Mon Sep 17 00:00:00 2001 From: Nuno Goncalves Date: Sun, 13 Dec 2015 23:20:21 +0000 Subject: [PATCH] rtl-ais: add procd validation Signed-off-by: Nuno Goncalves --- utils/rtl-ais/Makefile | 2 +- utils/rtl-ais/files/rtl_ais.init | 31 +++++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/utils/rtl-ais/Makefile b/utils/rtl-ais/Makefile index ed8ddd4c2d..ba455571b5 100644 --- a/utils/rtl-ais/Makefile +++ b/utils/rtl-ais/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rtl-ais -PKG_VERSION:=20150722 +PKG_VERSION:=20151213 PKG_RELEASE=$(PKG_SOURCE_VERSION) diff --git a/utils/rtl-ais/files/rtl_ais.init b/utils/rtl-ais/files/rtl_ais.init index 15269b0a5f..4900c34de3 100644 --- a/utils/rtl-ais/files/rtl_ais.init +++ b/utils/rtl-ais/files/rtl_ais.init @@ -1,19 +1,38 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2015 OpenWrt.org START=99 - USE_PROCD=1 + PROG=/usr/bin/rtl_ais -start_service() { - enabled="$(uci_get rtl_ais @rtl_ais[0] enabled 0)" - ppm="$(uci_get rtl_ais @rtl_ais[0] ppm 0)" +validate_rtl_ais_section() { + uci_validate_section "rtl_ais" "rtl_ais" "$1" \ + 'enabled:bool' \ + 'ppm:range(-100,100):0' +} - [ "$enabled" != "1" ] && return +load_rtl_ais() { + local cfg="$1" + + local enabled ppm + validate_rtl_ais_section "$cfg" || { echo "validation failed"; return 1; } + + [ "$enabled" = "1" ] || return 1 procd_open_instance procd_set_param command "$PROG" -p "$ppm" + procd_set_param stdout 1 + procd_set_param stderr 1 procd_set_param respawn procd_close_instance } + +start_service() { + config_load "rtl_ais" + config_foreach load_rtl_ais "rtl_ais" +} + +service_triggers() { + procd_add_reload_trigger "rtl_ais" + procd_add_validation validate_rtl_ais_section +}