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

START=90
STOP=15

CONFIG=/var/etc/shadowvpn.conf

start_vpn() {
	local enable server port password concurrency mtu intf
	config_get_bool enable $1 enable
	[ "$enable" = 1 ] || return 0
	config_get server $1 server
	config_get port $1 port
	config_get password $1 password
	config_get concurrency $1 concurrency
	config_get mtu $1 mtu
	config_get intf $1 intf
	: ${server:?}
	: ${port:?}
	: ${password:?}
	mkdir -p $(dirname $CONFIG)
	cat <<-EOF >$CONFIG
		server=$server
		port=$port
		password=$password
		mode=client
		concurrency=${concurrency:-1}
		mtu=${mtu:-1440}
		intf=${intf:-tun0}
		up=/etc/shadowvpn/client_up.sh
		down=/etc/shadowvpn/client_down.sh
		pidfile=/var/run/shadowvpn.pid
		logfile=/var/log/shadowvpn.log
EOF
	/usr/bin/shadowvpn -c $CONFIG -s start
}

start() {
	config_load shadowvpn
	config_foreach start_vpn shadowvpn
}

stop() {
	/usr/bin/shadowvpn -c $CONFIG -s stop
}

boot() {
	if [ ! -c "/dev/net/tun" ]; then
		mkdir -p /dev/net
		mknod /dev/net/tun c 10 200
		chmod 0666 /dev/net/tun
	fi
	start
}
