openvpn: switch to new procd init script style

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 38331
master
Luka Perkov 11 years ago
parent d6415bf1bd
commit c5bd00d82a
  1. 4
      package/network/services/openvpn/Makefile
  2. 75
      package/network/services/openvpn/files/openvpn.init

@ -1,5 +1,5 @@
#
# Copyright (C) 2010-2012 OpenWrt.org
# Copyright (C) 2010-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openvpn
PKG_VERSION:=2.3.2
PKG_RELEASE=1
PKG_RELEASE=2
PKG_SOURCE_URL:=http://swupdate.openvpn.net/community/releases
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

@ -1,15 +1,14 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2011 OpenWrt.org
# Copyright (C) 2008-2013 OpenWrt.org
# Copyright (C) 2008 Jo-Philipp Wich
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
START=95
START=90
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
EXTRA_COMMANDS="up down"
USE_PROCD=1
PROG=/usr/sbin/openvpn
LIST_SEP="
"
@ -21,7 +20,7 @@ append_param() {
*_*_*) v=${v%%_*}-${v#*_}; v=${v%%_*}-${v#*_} ;;
*_*) v=${v%%_*}-${v#*_} ;;
esac
ARGS="$ARGS --$v"
procd_append_param command --"$v"
return 0
}
@ -39,7 +38,7 @@ append_params() {
config_get v "$s" "$p"
IFS="$LIST_SEP"
for v in $v; do
[ -n "$v" ] && append_param "$p" && ARGS="$ARGS $v"
[ -n "$v" ] && append_param "$p" && procd_append_param command "$v"
done
unset IFS
done
@ -58,6 +57,9 @@ start_instance() {
ARGS=""
procd_open_instance
procd_set_param command "$PROG" --syslog "openvpn($s)" --writepid "/var/run/openvpn-$s.pid"
# append flags
append_bools "$s" \
auth_nocache auth_retry auth_user_pass_optional bind ccd_exclusive client client_cert_not_required \
@ -92,63 +94,10 @@ start_instance() {
tun_mtu tun_mtu_extra txqueuelen user verb down push up
SERVICE_PID_FILE="/var/run/openvpn-$s.pid"
service_start /usr/sbin/openvpn --syslog "openvpn($s)" --writepid "$SERVICE_PID_FILE" $ARGS
}
stop_instance() {
local s="$1"
section_enabled "$s" || return 1
SERVICE_PID_FILE="/var/run/openvpn-$s.pid"
service_stop /usr/sbin/openvpn
}
reload_instance() {
local s="$1"
section_enabled "$s" || return 1
SERVICE_PID_FILE="/var/run/openvpn-$s.pid"
service_reload /usr/sbin/openvpn
procd_close_instance
}
start() {
start_service() {
config_load 'openvpn'
config_foreach start_instance 'openvpn'
}
stop() {
config_load 'openvpn'
config_foreach stop_instance 'openvpn'
}
reload() {
config_load 'openvpn'
config_foreach reload_instance 'openvpn'
}
up() {
local exists
local instance
config_load 'openvpn'
for instance in "$@"; do
config_get exists "$instance" 'TYPE'
if [ "$exists" == "openvpn" ]; then
start_instance "$instance"
fi
done
}
down() {
local exists
local instance
config_load 'openvpn'
for instance in "$@"; do
config_get exists "$instance" 'TYPE'
if [ "$exists" == "openvpn" ]; then
stop_instance "$instance"
fi
done
}

Loading…
Cancel
Save