coova-chilli: Fix unwanted startup of disabled instances
authorPetr Štetiar <redacted>
Mon, 18 Mar 2019 10:53:23 +0000 (11:53 +0100)
committerPetr Štetiar <redacted>
Wed, 25 Sep 2019 10:59:55 +0000 (12:59 +0200)
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 <redacted>
net/coova-chilli/files/chilli.init

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