diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-10-31 17:36:24 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-10-31 17:36:24 +0000 |
commit | a24c6ad74fbe820ab23c20c214584a0117e83d95 (patch) | |
tree | 92fb7de9182bb5c3a0471cb0d9476cfd5430be68 /package/network/services/openvpn | |
parent | f5e0757dab76b924a2b504471ce64fa2e71a0cc0 (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')
-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() { |