~mamarley/openconnect/+git/gitlab-main:add_local_id_option

Last commit made on 2022-02-03
Get this branch:
git clone -b add_local_id_option https://git.launchpad.net/~mamarley/openconnect/+git/gitlab-main

Branch merges

Branch information

Name:
add_local_id_option
Repository:
lp:~mamarley/openconnect/+git/gitlab-main

Recent commits

5de221f... by Dan Lenski

Update manual to include `--local-id` with examples thereof

Signed-off-by: Daniel Lenski <email address hidden>

04706a8... by Dan Lenski

GP: include clientgpversion in {ssl-vpn/login.esp,global-protect/getconfig.esp} requests

I doubt it ever matters, but the official client sends it, and we already send the
identical-contents-but-differently-named `app-version` in the
/ssl-vpn/getconfig.esp request, so we should send this too for consistency

Signed-off-by: Daniel Lenski <email address hidden>

f82430a... by Dan Lenski

Add Juniper/GP --local-id options

- Juniper: pass any `--local-id=TNCC_*` to TNCC script
- GPST: override host-id, os-version, or app-version with `--local-id`, and pass
  any other `--local-id=HIP_*` to HIP script

Signed-off-by: Daniel Lenski <email address hidden>

41f3673... by Dan Lenski

Re-add MAC address option (set via --local-id=mac_address=00-aa-bb-cc-dd-ee)

This additional host identifier was in Ralph Schmieder's original patch set
for setting "mobile device ID" parameters for Cisco AnyConnect,
(see https://lists.infradead.org/pipermail/openconnect-devel/2018-September/005071.html)
but never merged for unknown reasons.

This version allows the specification of multiple such MAC addresses, which
may be necessary for some VPNs which try to match all network device
identifiers to try to confirm the client hardware that they're running on.

Signed-off-by: Daniel Lenski <email address hidden>

f73a826... by Dan Lenski

Add CLI option --local-id, generic id_options structure, and API function openconnect_set_id_option

… and use these instead of AnyConnect specific {platform_version,device_uniqueid,device_type}

The `mobile_` prefix is misleading, since there's nothing specific to mobile OSes in the identifiers sent,
but I guess we're stuck with it at least for `openconnect_set_mobile_info` (since it's now in the library API).

Signed-off-by: Daniel Lenski <email address hidden>

8fe1be3... by Dan Lenski

Better grouping and commenting of host-identification and Trojan-related options in openconnect-internal.h

Signed-off-by: Daniel Lenski <email address hidden>

b0c6d37... by Dan Lenski

Update changelog

This changely largely extends a previous one already made in this release
cycle.

Signed-off-by: Daniel Lenski <email address hidden>

11c504b... by Dan Lenski

Save GlobalProtect version reported by portal and parrot it back as client version

It appears that the GlobalProtect client and server software are versioned
together, so that if the portal server reports version 'X.Y.Z-W', then
the server will be satisfied that the client is up-to-date if it reports
the same value as the 'app-version' in the gateway configuration request
(/ssl-vpn/getconfig.esp).

Examples of the version tag in GlobalProtect portal XML in the wild:

- https://www.spinics.net/lists/openconnect/msg05666.html
- https://www.spinics.net/lists/openconnect/msg05623.html

This should help avoid the dreadfully vague "Matching client config not
found" error due to too-old client versions.

See https://gitlab.com/openconnect/openconnect/-/issues/176#note_395207613
for where a user ran into such an issue previously, and
https://gitlab.com/openconnect/openconnect/-/merge_requests/131 for where we
addressed it previously by increasing the emulated GlobalProtect app
version.

There don't actually appear to be meaningful differences between the
GlobalProtect app versions in terms of backwards-incompatible protocol
changes, so this will allow OpenConnect to Just Work™ on newer server
versions that may insist on newer client versions.

Caveats:

1. The <version> tag in portal XML often contains leading/trailing space which
   we need to strip.
2. If the portal XML doesn't contain <version>, or if the user connects
   straight to the gateway interface, we still need a default emulated
   'app-version' to fall back to.
3. As with everything else GlobalProtect, the naming of this field in the
   wire protocol is incredibly inconsistent. It's called 'app-version' in
   the gateway config request, which appears to be what servers frequently
   verify, but it's called 'client-version' in the XML HIP report (even
   though 'clientVer=4100' elsewhere in the protocol).
4. Ideally, we would allow end users to override the version reported to the
   client when needed. That should be easy to do once we merge some form of
   https://gitlab.com/openconnect/openconnect/-/merge_requests/103.

Signed-off-by: Daniel Lenski <email address hidden>

d326bbb... by dwmw2

Update translations from GNOME

Signed-off-by: David Woodhouse <email address hidden>

f9bff45... by Dan Lenski

Merge branch 'doc_updates' into 'master'

Documentation updates

See merge request openconnect/openconnect!327