openvpn: add list element parsing
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 20 Nov 2018 15:01:20 +0000 (16:01 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Mon, 3 Dec 2018 08:54:03 +0000 (09:54 +0100)
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>
package/network/services/openvpn/Makefile
package/network/services/openvpn/files/openvpn.init
package/network/services/openvpn/files/openvpn.options

index efaccaa..f48f79c 100644 (file)
@@ -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/ \
index 7e6cfd9..ebb0564 100644 (file)
@@ -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"
 }
index 6c084d2..a84959b 100644 (file)
@@ -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
+'