Fwknop: add flexibility to uci support
[feed/packages.git] / net / fwknop / files / fwknopd.init
index 294258f82a439132bcc6b3e9654d2bc7ee944d6c..6aa41607ddd9b7498c8b48c953c7bda91fd365a7 100644 (file)
@@ -30,60 +30,59 @@ restart()
 
 reload()
 {
+       gen_confs
         $FWKNOPD_BIN -R
 }
 
 gen_confs()
 {
-
-
-config_cb() {
-
-       local type="$1"
-       local name="$2"
-       if [ "$type" = "global" ]
-       then
-               option_cb() { 
-                       local option="$1"                                
-                       local value="$2"   
-                       if [ "$option" = "uci_enabled" ] && [ "$value" -eq 1 ] ; then
-                               > /etc/fwknop/fwknopd.conf
-                               > /etc/fwknop/access.conf
-                               UCI_ENABLED=1
+       [ -f /tmp/access.conf.tmp ] && rm /tmp/access.conf.tmp
+       config_cb() {
+               local type="$1"
+               local name="$2"
+               if [ "$type" = "global" ]; then
+                       option_cb() {
+                               local option="$1"
+                               local value="$2"
+                               if [ "$option" = "uci_enabled" ] && [ "$value" -eq 1 ] ; then
+                                       > /etc/fwknop/fwknopd.conf
+                                       > /etc/fwknop/access.conf
+                                       UCI_ENABLED=1
+                               fi
+                       }
+               elif [ "$type" = "config" ]; then
+                       option_cb() {
+                               local option="$1"
+                               local value="$2"
+                               if [ $UCI_ENABLED ]; then
+                                       echo "$option $value" >> /etc/fwknop/fwknopd.conf  #writing each option to fwknopd.conf
+                               fi
+                       }
+               elif [ "$type" = "access" ]
+               then
+                       if [ -f /tmp/access.conf.tmp ] ; then
+                               cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
+                               rm /tmp/access.conf.tmp
                        fi
-               }
-       elif [ "$type" = "config" ]
-       then
-               option_cb() { 
-                       local option="$1"                                
-                       local value="$2"   
-                       if [ $UCI_ENABLED ]; then 
-                               echo "${option//_/-} $value" >> /etc/fwknop/fwknopd.conf  #writing each option to fwknopd.conf
-                       fi
-               }
-       elif [ "$type" = "SOURCE" ]
-       then
-               echo "${type//_/-} $name" >> /etc/fwknop/access.conf  #writing each option to access.conf
-               option_cb() { 
-                       local option="$1"                                
-                       local value="$2"   
-                       if [ $UCI_ENABLED ]; then 
-                               echo "${option//_/-} $value" >> /etc/fwknop/access.conf  #writing each option to access.conf
-                       fi
-               }
-       fi       
-
-
-
-
-}
-
-
-if [ -f /etc/config/fwknopd ]; then
-
-       config_load fwknopd
-
-
-fi
+                       option_cb() {
+                               local option="$1"
+                               local value="$2"
+                               if [ $UCI_ENABLED ] && [ $option = "SOURCE" ]; then
+                                       echo "$option $value" >> /etc/fwknop/access.conf  #writing each option to access.conf
+                               fi
+                               if [ $UCI_ENABLED ] && [ $option != "SOURCE" ]; then
+                                       echo "$option $value" >> /tmp/access.conf.tmp  #writing each option to access.conf
+                               fi
+                       }
+               fi
+       }
+
+       if [ -f /etc/config/fwknopd ]; then
+               config_load fwknopd
+               if [ -f /tmp/access.conf.tmp ] ; then
+                       cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
+                       rm /tmp/access.conf.tmp
+               fi
+       fi
 
 }