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>
This commit is contained in:
Florian Eckert 2018-11-20 16:01:20 +01:00 committed by Hans Dedecker
parent 966ba6daa4
commit 675eb747aa
3 changed files with 20 additions and 3 deletions

View file

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openvpn PKG_NAME:=openvpn
PKG_VERSION:=2.4.6 PKG_VERSION:=2.4.6
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE_URL:=\ PKG_SOURCE_URL:=\
https://build.openvpn.net/downloads/releases/ \ https://build.openvpn.net/downloads/releases/ \

View file

@ -49,6 +49,19 @@ append_params() {
done 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() { section_enabled() {
config_get_bool enable "$1" 'enable' 0 config_get_bool enable "$1" 'enable' 0
config_get_bool enabled "$1" 'enabled' 0 config_get_bool enabled "$1" 'enabled' 0
@ -99,6 +112,7 @@ start_instance() {
append_bools "$s" $OPENVPN_BOOLS append_bools "$s" $OPENVPN_BOOLS
append_params "$s" $OPENVPN_PARAMS append_params "$s" $OPENVPN_PARAMS
append_list "$s" $OPENVPN_LIST
openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf"
} }

View file

@ -68,7 +68,6 @@ mode
mssfix mssfix
mtu_disc mtu_disc
mute mute
ncp_ciphers
nice nice
ns_cert_type ns_cert_type
ping ping
@ -117,7 +116,6 @@ status_version
syslog syslog
tcp_queue_limit tcp_queue_limit
tls_auth tls_auth
tls_cipher
tls_crypt tls_crypt
tls_timeout tls_timeout
tls_verify tls_verify
@ -190,3 +188,8 @@ up_delay
up_restart up_restart
username_as_common_name username_as_common_name
' '
OPENVPN_LIST='
tls_cipher
ncp_ciphers
'