#!/usr/bin/openrc-run

description="Simple static network, defroute & resolver config"
extra_commands="init clean"

. /opt/etc/functions.openrc

SEARCH_DOMAINS=${SEARCH_DOMAINS-"ckpmgsu.ru kkatarn.ru"}
DNS_TIMEOUT=${DNS_TIMEOUT-"1"}
DNS_ATTEMPTS=${DNS_ATTEMPTS-"1"}

depend()
{
	echo "  ${SVCNAME}::depend(): rc_need=\"${rc_need}\""
	use rdma mlx4mode
	after rdma mlx4mode
	provide ${SVCNAME} net
	before localmount mounta
}

init() {
	local _rv=0 _dns
	if [ -n "${LANETH}" ]; then
		[ -n "${LANMTU}" ] && ip link set mtu ${LANMTU} dev ${LANETH}
		ip link set up dev ${LANETH} || _rv=1
		if [ -n "${LANIPMASK}" ]; then
			ip addr add ${LANIPMASK} dev ${LANETH} || _rv=1
		fi
		ip link set up dev ${LANETH} || _rv=1
	fi
	if [ -n "${LANGW}" ]; then
		ip route add default via ${LANGW} || _rv=1
		# FIXME
		/usr/bin/sysctl net.ipv4.ip_forward=1
	fi
	if [ -n "${LANDNS}" ]; then
		echo "# Created by ${SVCNAME}, do not edit!" > /etc/resolv.conf
		[ -n "${SEARCH_DOMAINS}" ] && echo "search ${SEARCH_DOMAINS}" >> /etc/resolv.conf
		echo "options timeout:${DNS_TIMEOUT} attempts:${DNS_ATTEMPTS}" >> /etc/resolv.conf
		for _dns in $(echo ${LANDNS} | sed -e 's/[,;:]/\ /g'); do
			echo "nameserver ${_dns}" >> /etc/resolv.conf
		done
	fi
	# FIXME move to another place
	iptables -X
	iptables -t filter -F
	iptables -t mangle -F
	iptables -t nat -F
	return ${_rv}
}

clean()
{
	[ -n "${LANGW}" ] && ip route delete default
	if [ -n "${LANETH}" ]; then
		ip link set down dev ${LANETH}
		if [ -n "${LANIPMASK}" ]; then
			ip addr del ${LANIPMASK} dev ${LANETH}
		fi
	fi
	if [ -n "${LANGW}" ]; then
		ip route delete default
		# FIXME
		/usr/bin/sysctl net.ipv4.ip_forward=0
	fi
	if [ -n "${LANDNS}" ]; then
		[ -f /etc/resolv.conf ] && rm /etc/resolv.conf
	fi
}

start()
{
	local _rv=0
	ebegin "Starting \"${SVCNAME}\""
	eindent
	init
	_rv=$?
	eoutdent
	eend ${_rv}
	return ${_rv}
}

restart() {
	clean
	init
}

reload() {
	restart
}

stop()
{
	ebegin "Resetting service \"${SVCNAME}\" to stopped state"
	eend 0
	return 0
}
