openvpn: switch to new procd init script style
authorLuka Perkov <luka@openwrt.org>
Mon, 7 Oct 2013 21:28:14 +0000 (21:28 +0000)
committerLuka Perkov <luka@openwrt.org>
Mon, 7 Oct 2013 21:28:14 +0000 (21:28 +0000)
Signed-off-by: Luka Perkov <luka@openwrt.org>
SVN-Revision: 38331

package/network/services/openvpn/Makefile
package/network/services/openvpn/files/openvpn.init

index 4fffd5cfe50bc7d9fd30948cfabb9b14468e76ce..219009ab9acb8e3101dacce851f107244b337bb6 100644 (file)
@@ -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
index c58f005f3651433278f5d7bb9d99999bb43f281c..a56aac1ee54e6978dfa73cb8ea3fc73816afcdd3 100644 (file)
@@ -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
-}