enumerate supported VPN protocols via openconnect_get_supported_protocols()
Add two new public functions:
* int openconnect_get_supported_protocols(struct oc_vpn_proto **protos)
Fetches a list of protocols supported by the client. Each supported
protocol has a short name (as accepted by the --protocol command-line
option), pretty name, longer description, and list of flags.
The return value of the function is the number of protocols supported (or
negative if an error occurred).
The flags indicate features that are meaningful for this protocol, to be
used by tools like the Networkmanager configuration UI. Current flags:
* OC_PROTO_PROXY: can connect via HTTP or SOCKS proxy
* OC_PROTO_CSD: supports verification of the client via CSD trojan
* OC_PROTO_AUTH_CERT: supports authentication by client certificate
* OC_PROTO_AUTH_OTP: supports authentication by OATH HOTP/TOTP token
* OC_PROTO_AUTH_STOKEN: supports authentication by RSA SecurID token (stoken)
Frees the list of protocols fetched by openconnect_get_supported_protocols()
The description of the "anyconnect" protocol matches the IETF draft
standard for openconnect VPN (https://tools.ietf.org/html/draft-mavrogiannopoulos-openconnect-00).
Signed-off-by: Daniel Lenski <dlenski@gmail.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>