summaryrefslogtreecommitdiff
path: root/package/network/services/openvpn/files
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-10-31 17:36:24 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-10-31 17:36:24 +0000
commita24c6ad74fbe820ab23c20c214584a0117e83d95 (patch)
tree92fb7de9182bb5c3a0471cb0d9476cfd5430be68 /package/network/services/openvpn/files
parentf5e0757dab76b924a2b504471ce64fa2e71a0cc0 (diff)
openvpn: clean up and fix the init script
- clean up duplication of procd instance handling code - using --cd *after* --config is rather pointless - to be able to log errors properly, --syslog needs to be passed before --config - tell procd about the generated or referenced config file instead of the uci file. this avoids having to restart all instances if only one of them changes. Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38632 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/services/openvpn/files')
-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() {