diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-10-31 17:36:24 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-10-31 17:36:24 +0000 |
commit | 2c84ff42f779ff4c2a8071f53122e3c2895fecd6 (patch) | |
tree | 854dcb1bccced4fb8010d2d2896d7ba0a4ab0f0f /package/network/services | |
parent | e00bc81a56da1b9aed2a4114ab64b8ea015507c5 (diff) | |
download | upstream-2c84ff42f779ff4c2a8071f53122e3c2895fecd6.tar.gz upstream-2c84ff42f779ff4c2a8071f53122e3c2895fecd6.tar.bz2 upstream-2c84ff42f779ff4c2a8071f53122e3c2895fecd6.zip |
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>
SVN-Revision: 38632
Diffstat (limited to 'package/network/services')
-rw-r--r-- | package/network/services/openvpn/files/openvpn.init | 33 |
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() { |