#!/bin/sh

if grep -q '^config config ' /etc/config/socat && ! grep -q '^config config ' /etc/config/socat_luci; then
	echo >>/etc/config/socat_luci
	cat /etc/config/socat >>/etc/config/socat_luci
fi

uci -q get socat_luci.global >/dev/null || uci -q batch <<-EOF >/dev/null
	set socat_luci.global=global
	set socat_luci.global.enable=1
	commit socat_luci
EOF

uci -q batch <<-EOF >/dev/null
	delete firewall.socat
	set firewall.socat=include
	set firewall.socat.type=script
	set firewall.socat.path=/var/etc/socat.include
	set firewall.socat.reload=1
	commit firewall
EOF

if [ -x /sbin/fw4 ]; then
	if ! nft -at list chain inet fw4 socat_input >/dev/null 2>&1 ; then
		rm -f /var/etc/socat.include
		# load nftables.d
		fw4 -q reload
	fi
fi

/etc/init.d/socat_luci enable

uci -q batch <<-EOF >/dev/null
	delete ucitrack.@socat_luci[-1]
	add ucitrack socat_luci
	set ucitrack.@socat_luci[-1].init=socat_luci
	commit ucitrack
EOF

rm -rf /tmp/luci-*cache
exit 0
