#!/bin/sh /etc/rc.common

START=85
STOP=30
USE_PROCD=1
PROG=/usr/bin/totd

validate_totd_section(){
	uci_validate_section totd totd "${1}" \
		'forwarder:list(string)' \
		'prefix:list(ipaddr)' \
		'port:uinteger' \
		'interface:list(string)' \
		'lookup:string' \
		'stf_enable:bool'
}

totd(){
	config_load 'totd'
	local forwarder prefix port interface lookup stf_enable
	validate_totd_section "$1" || {
		logger -t "totd" "validation failed"
		return 1
	}

	test -d /var/etc/ || mkdir -p /var/etc

        {
                [ -n "$forwarder" ] && {
			for fa in $forwarder; do
				echo "$fa" | awk -F [#] '{print "forwarder "$1" port "$2}'
			done
		}
                [ -n "$prefix" ] && {
			for pr in $prefix; do
				echo "prefix $pr"
			done
		}
                [ -n "$port" ] && echo "port $port"
                [ -n "$interface" ] && echo "interfaces $interface"
                [ -n "$lookup" ] && echo "$lookup reverse lookup"
                [ -n "$stf_enable" -a "$stf_enable" = "1" ] && echo "stf"
        } > /var/etc/totd.conf
	procd_open_instance
        procd_append_param command $PROG -c /var/etc/totd.conf
        procd_set_param stdout 1
        procd_set_param stderr 1
        procd_set_param respawn
        procd_close_instance
}

start_service(){
	config_load 'totd'
	config_foreach totd "totd"
}

stop_service(){
	kill `pgrep -f $PROG` > /dev/null 2>&1
}

reload_service() {
	restart
}

service_triggers() {
	procd_add_reload_trigger "totd"
}
