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

START=99
USE_PROCD=1

get_config() {
	config_get_bool enabled $1 enabled 0
	config_get_bool logger $1 logger 0
	config_get token $1 token
	config_get index $1 index 0
	config_get_bool feat_enabled $1 feat_enabled 0
}

ddnsto_prepare() {
	killall ddnstod 2>/dev/null
	killall ddwebdav 2>/dev/null
}

stop_service() {
	ddnsto_prepare
}

start_service() {
	ddnsto_prepare
	config_load ddnsto
	config_foreach get_config ddnsto
	
	if [ "$enabled" != "1" ]; then
		logger -t ddnsto -p daemon.info "ddnsto service disabled"
		return 1
	fi

	if [ -z "$token" ]; then
		logger -t ddnsto -p daemon.warn "token not set"
		return 1
	fi
	
	procd_open_instance
	# go版本不支持 -F 参数 , zig版本支持
	procd_set_param command /usr/sbin/ddnstod -u "$token" -x "$index"
	[ "$logger" == "1" ] && procd_set_param stderr 1
	procd_set_param respawn
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger "ddnsto"
}

reload_service() {
	stop
	sleep 1
	start
}
