aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Eckert <fe@dev.tdt.de>2018-11-20 16:01:20 +0100
committerHans Dedecker <dedeckeh@gmail.com>2018-12-03 09:54:03 +0100
commit675eb747aa1cb76d4d6e715728592974acac8cc1 (patch)
tree81cbb68b7a1b3c3eb6d5f275a8a4a23983b51d6a
parent966ba6daa430922e41ca7598385817f5a611c9c7 (diff)
downloadupstream-675eb747aa1cb76d4d6e715728592974acac8cc1.tar.gz
upstream-675eb747aa1cb76d4d6e715728592974acac8cc1.tar.bz2
upstream-675eb747aa1cb76d4d6e715728592974acac8cc1.zip
openvpn: add list element parsing
For the parameters tls-cipher and ncp-ciphers more than one option can be used in the OpenVPN configuration, separated by a colon, which should be implemented as a list in order to configure it more clearly. By adding the new OPENVPN_LIST option to the openvpn.options file with the tls-cipher and ncp-cipher parameters, uci can now add this option as a "list" and the init script will generate the appropriate OpenVPN configuration from it. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> Signed-off-by: Florian Eckert <fe@dev.tdt.de>
-rw-r--r--package/network/services/openvpn/Makefile2
-rw-r--r--package/network/services/openvpn/files/openvpn.init14
-rw-r--r--package/network/services/openvpn/files/openvpn.options7
3 files changed, 20 insertions, 3 deletions
diff --git a/package/network/services/openvpn/Makefile b/package/network/services/openvpn/Makefile
index efaccaae29..f48f79c7ab 100644
--- a/package/network/services/openvpn/Makefile
+++ b/package/network/services/openvpn/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openvpn
PKG_VERSION:=2.4.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=\
https://build.openvpn.net/downloads/releases/ \
diff --git a/package/network/services/openvpn/files/openvpn.init b/package/network/services/openvpn/files/openvpn.init
index 7e6cfd9c35..ebb05640d8 100644
--- a/package/network/services/openvpn/files/openvpn.init
+++ b/package/network/services/openvpn/files/openvpn.init
@@ -49,6 +49,19 @@ append_params() {
done
}
+append_list() {
+ local p; local v; local s="$1"; shift
+
+ list_cb_append() {
+ v="$1:${v}"
+ }
+
+ for p in $*; do
+ config_list_foreach "$s" "$p" list_cb_append
+ done
+ [ -n "$v" ] && append_param "$s" "$p" && echo " ${v%*:}" >> "/var/etc/openvpn-$s.conf"
+}
+
section_enabled() {
config_get_bool enable "$1" 'enable' 0
config_get_bool enabled "$1" 'enabled' 0
@@ -99,6 +112,7 @@ start_instance() {
append_bools "$s" $OPENVPN_BOOLS
append_params "$s" $OPENVPN_PARAMS
+ append_list "$s" $OPENVPN_LIST
openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf"
}
diff --git a/package/network/services/openvpn/files/openvpn.options b/package/network/services/openvpn/files/openvpn.options
index 6c084d22dc..a84959b847 100644
--- a/package/network/services/openvpn/files/openvpn.options
+++ b/package/network/services/openvpn/files/openvpn.options
@@ -68,7 +68,6 @@ mode
mssfix
mtu_disc
mute
-ncp_ciphers
nice
ns_cert_type
ping
@@ -117,7 +116,6 @@ status_version
syslog
tcp_queue_limit
tls_auth
-tls_cipher
tls_crypt
tls_timeout
tls_verify
@@ -190,3 +188,8 @@ up_delay
up_restart
username_as_common_name
'
+
+OPENVPN_LIST='
+tls_cipher
+ncp_ciphers
+'