coova-chilli: Fix unwanted startup of disabled instances

Code in option_cb was referencing $chilli_inst variable which was
declared as local, thus the instance startup logic in start_chilli was
referencing variable which would always get value of 1, effectively
making `disabled` config option useless.

So I've fixed it with simpler config_get_bool and while at it, I've simplified the
surrounding code little bit as well.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
Petr Štetiar 2019-03-18 11:53:23 +01:00
parent aa6dfc5978
commit 9d3a1a2a63

View file

@ -9,18 +9,15 @@ service_triggers() {
} }
config_cb() { config_cb() {
local chilli_inst="$2" chilli_conf="/var/run/chilli_${2}.conf"
if [ "$chilli_inst" != "" ]; then [ -e "$chilli_conf" ] && rm -f "$chilli_conf"
chilli_conf="/var/run/chilli_${chilli_inst}.conf"
if [ -e "$chilli_conf" ]; then
rm -f "$chilli_conf"
fi
eval "start_chilli_$chilli_inst=1"
fi
} }
option_cb() { option_cb() {
case "$1" in case "$1" in
# ignored/internal settings
disabled)
;;
# UCI settings # UCI settings
network) network)
. /lib/functions/network.sh . /lib/functions/network.sh
@ -28,9 +25,6 @@ option_cb() {
network_get_device ifname "$2" network_get_device ifname "$2"
echo "dhcpif=\"$ifname\"" >> "$chilli_conf" echo "dhcpif=\"$ifname\"" >> "$chilli_conf"
;; ;;
disabled)
[ "$(config_get_bool "$1")" = "1" ] && eval "start_chilli_$chilli_inst=0"
;;
# boolean settings # boolean settings
debug|dhcpbroadcast|nodynip|vlanlocation|locationstopstart|locationcopycalled|\ debug|dhcpbroadcast|nodynip|vlanlocation|locationstopstart|locationcopycalled|\
locationimmediateupdate|locationopt82|coanoipcheck|noradallow|proxymacaccept|\ locationimmediateupdate|locationopt82|coanoipcheck|noradallow|proxymacaccept|\
@ -51,13 +45,14 @@ option_cb() {
start_chilli() { start_chilli() {
local cfg="$1" local cfg="$1"
local start_chilli=$(eval "echo \$start_chilli_$cfg")
[ "$start_chilli" = "0" ] && return
local base="/var/run/chilli_${cfg}" local base="/var/run/chilli_${cfg}"
config_get_bool disabled "$1" 'disabled' 1
[ $disabled = 1 ] && return
procd_open_instance "$cfg" procd_open_instance "$cfg"
procd_set_param command /usr/sbin/chilli procd_set_param command /usr/sbin/chilli
procd_set_param file "${base}.conf" procd_set_param file "$chilli_conf"
procd_append_param command \ procd_append_param command \
--fg \ --fg \
--conf "${base}.conf" \ --conf "${base}.conf" \