SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
-DEFAULT=/etc/default/frickin
+append_string() {
+ local var="$1"
+ local section="$2"
+ local option="$3"
+ local val="$4"
+ local _val
+ config_get _val "$section" "$option"
+ [ -n "$_val" ] && append "$var" "$val $_val"
+}
+
+section_enabled() {
+ local enabled
+ config_get_bool enabled "$1" 'enabled' 0
+ [ $enabled -gt 0 ]
+}
+
+start_instance() {
+ local section="$1"
+ local args
+
+ section_enabled "$section" || return 1
+
+ append_string args "$section" 'listen_ip' '-l'
+ append_string args "$section" 'server_ip' '-s'
+ append_string args "$section" 'conn_limit' '-c'
+
+ SERVICE_PID_FILE="/var/run/frickin-${section}.pid"
+ service_start /usr/sbin/frickin $args
+}
+
+stop_instance() {
+ local section="$1"
+ local id
+ local if
+
+ section_enabled "$section" || return 1
+
+ SERVICE_PID_FILE="/var/run/frickin-${section}.pid"
+ service_stop /usr/sbin/frickin
+}
start() {
- [ -f $DEFAULT ] && . $DEFAULT
- service_start /usr/sbin/frickin $OPTIONS
+ include /lib/network
+ scan_interfaces
+ config_load 'frickin'
+ config_foreach start_instance 'frickin'
}
stop() {
- service_stop /usr/sbin/frickin
+ include /lib/network
+ scan_interfaces
+ config_load 'frickin'
+ config_foreach stop_instance 'frickin'
}