diff options
Diffstat (limited to 'net/openconnect/files/openconnect.sh')
| -rwxr-xr-x | net/openconnect/files/openconnect.sh | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/net/openconnect/files/openconnect.sh b/net/openconnect/files/openconnect.sh index ad708073a..2d3f7141c 100755 --- a/net/openconnect/files/openconnect.sh +++ b/net/openconnect/files/openconnect.sh @@ -17,7 +17,7 @@ proto_openconnect_init_config() { proto_openconnect_setup() { local config="$1" - json_get_vars server port username serverhash authgroup password vgroup + json_get_vars server port username serverhash authgroup password vgroup token_mode token_secret grep -q tun /proc/modules || insmod tun @@ -38,10 +38,23 @@ proto_openconnect_setup() { cmdline="$server$port -i vpn-$config --non-inter --syslog --script /lib/netifd/vpnc-script" - [ -f /etc/openconnect/ca-vpn-$config.pem ] && append cmdline "--cafile /etc/openconnect/ca-vpn-$config.pem" - [ -f /etc/openconnect/user-cert-vpn-$config.pem ] && append cmdline "-c /etc/openconnect/user-cert-vpn-$config.pem" - [ -f /etc/openconnect/user-key-vpn-$config.pem ] && append cmdline "--sslkey /etc/openconnect/user-key-vpn-$config.pem" - [ -n "$serverhash" ] && append cmdline "--servercert=$serverhash" + # migrate to new config files + [ -f /etc/openconnect/user-cert-vpn-$config.pem ] && mv "/etc/openconnect/user-cert-vpn-$config.pem" "/etc/config/openconnect-user-cert-vpn-$config.pem" + [ -f /etc/openconnect/user-key-vpn-$config.pem ] && mv "/etc/openconnect/user-key-vpn-$config.pem" "/etc/config/openconnect-user-key-vpn-$config.pem" + [ -f /etc/openconnect/ca-vpn-$config.pem ] && mv "/etc/openconnect/ca-vpn-$config.pem" "/etc/config/openconnect-ca-vpn-$config.pem" + + # read new config files + [ -f /etc/config/openconnect-user-cert-vpn-$config.pem ] && append cmdline "-c /etc/config/openconnect-user-cert-vpn-$config.pem" + [ -f /etc/config/openconnect-user-key-vpn-$config.pem ] && append cmdline "--sslkey /etc/config/openconnect-user-key-vpn-$config.pem" + [ -f /etc/config/openconnect-ca-vpn-$config.pem ] && { + append cmdline "--cafile /etc/openconnect/ca-vpn-$config.pem" + append cmdline "--no-system-trust" + } + + [ -n "$serverhash" ] && { + append cmdline " --servercert=$serverhash" + append cmdline "--no-system-trust" + } [ -n "$authgroup" ] && append cmdline "--authgroup $authgroup" [ -n "$username" ] && append cmdline "-u $username" [ -n "$password" ] && { @@ -51,10 +64,13 @@ proto_openconnect_setup() { append cmdline "--passwd-on-stdin" } + [ -n "$token_mode" ] && append cmdline "--token-mode=$token_mode" + [ -n "$token_secret" ] && append cmdline "--token-secret=$token_secret" + proto_export INTERFACE="$config" logger -t openconnect "executing 'openconnect $cmdline'" - if [ -f "$pwfile" ];then + if [ -f "$pwfile" ]; then proto_run_command "$config" /usr/sbin/openconnect-wrapper $pwfile $cmdline else proto_run_command "$config" /usr/sbin/openconnect $cmdline @@ -68,7 +84,7 @@ proto_openconnect_teardown() { rm -f $pwfile logger -t openconnect "bringing down openconnect" - proto_kill_command "$config" + proto_kill_command "$config" 2 } add_protocol openconnect |
