From: Felix Fietkau Date: Thu, 31 Oct 2013 17:36:24 +0000 (+0000) Subject: openvpn: clean up and fix the init script X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2c84ff42f779ff4c2a8071f53122e3c2895fecd6;p=openwrt%2Fstaging%2Fblocktrron.git 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 SVN-Revision: 38632 --- 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() {