openconnect: allow specifying form_entry list
authorYousong Zhou <redacted>
Fri, 20 Sep 2019 09:22:54 +0000 (09:22 +0000)
committerYousong Zhou <redacted>
Sat, 21 Sep 2019 10:33:18 +0000 (10:33 +0000)
Signed-off-by: Yousong Zhou <redacted>
net/openconnect/Makefile
net/openconnect/README
net/openconnect/files/openconnect.sh

index 70454a4fd28ebe8d9cdbbd7b05e665a5c293a01d..0d90c2b7757597c0c697934a6e9bb32ae04ec59e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openconnect
 PKG_VERSION:=8.04
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
index 019058ce505e3f304cd4d4399d9285eb1e474916..29c807490790992672623b13957fa89de6e27e68 100644 (file)
@@ -33,6 +33,9 @@ config interface 'MYVPN'
        # Juniper vpn support
        #option juniper '1'
 
+       # Authentication form responses
+       #list form_entry FORM:OPT=VAL
+
 The additional files are also used:
 /etc/openconnect/user-cert-vpn-MYVPN.pem: The user certificate
 /etc/openconnect/user-key-vpn-MYVPN.pem: The user private key
index dc1d42b80fc0993713bc4024d0296cff60279c4f..15bd3b5a5c504d583d64dbdc6ee12924b9e3bbd3 100755 (executable)
@@ -19,14 +19,19 @@ proto_openconnect_init_config() {
        proto_config_add_string "token_script"
        proto_config_add_string "os"
        proto_config_add_string "csd_wrapper"
+       proto_config_add_array 'form_entry:regex("[^:]+:[^=]+=.*")'
        no_device=1
        available=1
 }
 
+proto_openconnect_add_form_entry() {
+       [ -n "$1" ] && append cmdline "--form-entry $1"
+}
+
 proto_openconnect_setup() {
        local config="$1"
 
-       json_get_vars server port interface username serverhash authgroup password password2 token_mode token_secret token_script os csd_wrapper mtu juniper
+       json_get_vars server port interface username serverhash authgroup password password2 token_mode token_secret token_script os csd_wrapper mtu juniper form_entry
 
        grep -q tun /proc/modules || insmod tun
        ifname="vpn-$config"
@@ -88,6 +93,8 @@ proto_openconnect_setup() {
        [ -n "$os" ] && append cmdline "--os=$os"
        [ -n "$csd_wrapper" ] && [ -x "$csd_wrapper" ] && append cmdline "--csd-wrapper=$csd_wrapper"
 
+       json_for_each_item proto_openconnect_add_form_entry form_entry
+
        proto_export INTERFACE="$config"
        logger -t openconnect "executing 'openconnect $cmdline'"
 
git clone https://git.99rst.org/PROJECT