mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-01 10:31:50 +02:00
64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
#!/sbin/runscript
|
|
# Copyright 1999-2007 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
VPNDIR="/etc/openvpn"
|
|
VPN="${SVCNAME#*.}"
|
|
if [ -n "${VPN}" ] && [ "${SVCNAME}" != "openvpn" ]; then
|
|
VPNPID="/var/run/openvpn.${VPN}.pid"
|
|
else
|
|
VPNPID="/var/run/openvpn.pid"
|
|
fi
|
|
VPNCONF="${VPNDIR}/${VPN}.conf"
|
|
|
|
depend() {
|
|
need localmount net
|
|
before netmount
|
|
after bootmisc firewall
|
|
}
|
|
|
|
checktundevice() {
|
|
if [ ! -e /dev/net/tun ]; then
|
|
if ! modprobe tun ; then
|
|
eerror "TUN/TAP support is not available in this kernel"
|
|
return 1
|
|
fi
|
|
fi
|
|
if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then
|
|
ebegin "Detected broken /dev/net/tun symlink, fixing..."
|
|
rm -f /dev/net/tun
|
|
ln -s /dev/misc/net/tun /dev/net/tun
|
|
eend $?
|
|
fi
|
|
}
|
|
|
|
start() {
|
|
ebegin "Starting ${SVCNAME}"
|
|
|
|
checktundevice || return 1
|
|
|
|
if [ ! -e "${VPNCONF}" ]; then
|
|
eend 1 "${VPNCONF} does not exist"
|
|
return 1
|
|
fi
|
|
|
|
local args=""
|
|
# If the config file does not specify the cd option, we do
|
|
# But if we specify it, we override the config option which we do not want
|
|
if ! grep -q "^[ \t]*cd[ \t].*" "${VPNCONF}" ; then
|
|
args="${args} --cd ${VPNDIR}"
|
|
fi
|
|
|
|
start-stop-daemon --start --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \
|
|
-- --config "${VPNCONF}" --writepid "${VPNPID}" --daemon ${args}
|
|
eend $? "Check your logs to see why startup failed"
|
|
}
|
|
|
|
stop() {
|
|
ebegin "Stopping ${SVCNAME}"
|
|
start-stop-daemon --stop --exec /usr/sbin/openvpn --pidfile "${VPNPID}"
|
|
eend $?
|
|
}
|
|
|
|
# vim: ts=4
|