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

START=91
STOP=15
USE_PROCD=1

service_triggers() {
	procd_add_reload_trigger quickstart-netpolicy
}

start_service() {
	local enabled interface port data_dir log_level history dns
	config_load quickstart-netpolicy
	config_get_bool enabled main enabled 0
	[ "$enabled" -eq 1 ] || return 0
	config_get interface main interface br-lan
	config_get port main port 8765
	config_get data_dir main data_dir /usr/share/quickstart-netpolicy
	config_get log_level main log_level info
	config_get_bool history main traffic_history 0
	config_get_bool dns main dns_monitoring 0

	local binary=/usr/bin/quickstart-netpolicy
	[ -x "$binary" ] || { logger -t quickstart-netpolicy "missing executable $binary"; return 1; }
	[ -r /sys/kernel/btf/vmlinux ] || { logger -t quickstart-netpolicy "kernel BTF is unavailable"; return 1; }

	procd_open_instance
	procd_set_param command "$binary" --iface "$interface" --port "$port" --data-dir "$data_dir" --log-level "$log_level" --enable-traffic
	[ "$history" -eq 1 ] && procd_append_param command --traffic-enable-storage
	[ "$dns" -eq 1 ] && procd_append_param command --enable-dns
	procd_set_param respawn 3600 5 3
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_set_param limits core="0 0"
	procd_close_instance
}
