openconnect: allow specifying form_entry list
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
parent
61423689f9
commit
384398d452
3 changed files with 12 additions and 2 deletions
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=openconnect
|
PKG_NAME:=openconnect
|
||||||
PKG_VERSION:=8.04
|
PKG_VERSION:=8.04
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
|
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
|
||||||
|
|
|
@ -33,6 +33,9 @@ config interface 'MYVPN'
|
||||||
# Juniper vpn support
|
# Juniper vpn support
|
||||||
#option juniper '1'
|
#option juniper '1'
|
||||||
|
|
||||||
|
# Authentication form responses
|
||||||
|
#list form_entry FORM:OPT=VAL
|
||||||
|
|
||||||
The additional files are also used:
|
The additional files are also used:
|
||||||
/etc/openconnect/user-cert-vpn-MYVPN.pem: The user certificate
|
/etc/openconnect/user-cert-vpn-MYVPN.pem: The user certificate
|
||||||
/etc/openconnect/user-key-vpn-MYVPN.pem: The user private key
|
/etc/openconnect/user-key-vpn-MYVPN.pem: The user private key
|
||||||
|
|
|
@ -19,14 +19,19 @@ proto_openconnect_init_config() {
|
||||||
proto_config_add_string "token_script"
|
proto_config_add_string "token_script"
|
||||||
proto_config_add_string "os"
|
proto_config_add_string "os"
|
||||||
proto_config_add_string "csd_wrapper"
|
proto_config_add_string "csd_wrapper"
|
||||||
|
proto_config_add_array 'form_entry:regex("[^:]+:[^=]+=.*")'
|
||||||
no_device=1
|
no_device=1
|
||||||
available=1
|
available=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proto_openconnect_add_form_entry() {
|
||||||
|
[ -n "$1" ] && append cmdline "--form-entry $1"
|
||||||
|
}
|
||||||
|
|
||||||
proto_openconnect_setup() {
|
proto_openconnect_setup() {
|
||||||
local config="$1"
|
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
|
grep -q tun /proc/modules || insmod tun
|
||||||
ifname="vpn-$config"
|
ifname="vpn-$config"
|
||||||
|
@ -88,6 +93,8 @@ proto_openconnect_setup() {
|
||||||
[ -n "$os" ] && append cmdline "--os=$os"
|
[ -n "$os" ] && append cmdline "--os=$os"
|
||||||
[ -n "$csd_wrapper" ] && [ -x "$csd_wrapper" ] && append cmdline "--csd-wrapper=$csd_wrapper"
|
[ -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"
|
proto_export INTERFACE="$config"
|
||||||
logger -t openconnect "executing 'openconnect $cmdline'"
|
logger -t openconnect "executing 'openconnect $cmdline'"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue