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

USE_PROCD=1
START=95
STOP=10

start_service() {
	config_load dns-failsafe-proxy

	local listen_ip listen_port dns_ip dns_port failback_ip failback_port session_timeout debug
	config_get listen_ip main listen_ip
	config_get listen_port main listen_port
	config_get dns_ip main dns_ip
	config_get dns_port main dns_port
	config_get failback_ip main failback_ip
	config_get failback_port main failback_port
	config_get session_timeout main session_timeout
	config_get debug main debug

	[ -z "$session_timeout" ] && session_timeout=350

	local listen="${listen_ip}:${listen_port}"
	local s1="${dns_ip}:${dns_port}"
	local s2="${failback_ip}:${failback_port}"

	procd_open_instance 'dns-failsafe-proxy'
	procd_set_param command /usr/bin/dns-failsafe-proxy \
		--listen "$listen" \
		--s1 "$s1" \
		--s2 "$s2" \
		--session-timeout "$session_timeout"

	[ -n "$debug" ] && procd_append_param command --debug "$debug"

	procd_set_param file /etc/config/dns-failsafe-proxy /tmp/resolv.conf.d/resolv.conf.auto
	procd_set_param respawn
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger 'dns-failsafe-proxy'
}

reload_service() {
	stop
	start
}
