aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/network/services/openvpn/files/openvpn.init33
1 files changed, 16 insertions, 17 deletions
diff --git a/package/network/services/openvpn/files/openvpn.init b/package/network/services/openvpn/files/openvpn.init
index dee5925390..08832a086b 100644
--- a/package/network/services/openvpn/files/openvpn.init
+++ b/package/network/services/openvpn/files/openvpn.init
@@ -51,6 +51,20 @@ section_enabled() {
[ $enable -gt 0 ] || [ $enabled -gt 0 ]
}
+openvpn_add_instance() {
+ local name="$1"
+ local dir="$2"
+ local conf="$3"
+
+ procd_open_instance
+ procd_set_param command "$PROG" \
+ --syslog "openvpn($name)" \
+ --cd "$dir" \
+ --config "$conf"
+ procd_set_param file "$dir/$conf"
+ procd_close_instance
+}
+
start_instance() {
local s="$1"
@@ -61,14 +75,7 @@ start_instance() {
[ ! -d "/var/run" ] && mkdir -p "/var/run"
if [ ! -z "$config" ]; then
- procd_open_instance
- procd_set_param command "$PROG" \
- --config "$config" \
- --cd "$(dirname $config)" \
- --syslog "openvpn($s)" \
- --writepid "/var/run/openvpn-$s.pid"
- procd_set_param file "/etc/config/openvpn"
- procd_close_instance
+ openvpn_add_instance "$s" "$(dirname "$config")" "$(basename "$config")"
return
fi
@@ -108,15 +115,7 @@ start_instance() {
tls_cipher tls_remote tls_timeout tls_verify tmp_dir topology tran_window \
tun_mtu tun_mtu_extra txqueuelen user verb down push up
-
- procd_open_instance
- procd_set_param command "$PROG" \
- --config "/var/etc/openvpn-$s.conf" \
- --cd "/var/etc" \
- --syslog "openvpn($s)" \
- --writepid "/var/run/openvpn-$s.pid"
- procd_set_param file "/etc/config/openvpn"
- procd_close_instance
+ openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf"
}
start_service() {