Skip to content

Commit

Permalink
Fix GlobalProtect authgroup handling
Browse files Browse the repository at this point in the history
When connecting to a GlobalProtect server via the portal interface, then
`vpninfo->authgroup` needs to be set to the URL of one of the allowed
gateways.

The problem here is that if the user actually wanted to select the _first_
gateway in the dropdown list, it was already pre-selected, and thus clicking
"continue"/"login" on the form wouldn't trigger `OC_FORM_RESULT_NEWGROUP`.

This would prevent `vpninfo->authgroup` from getting set correctly, and the
gateway redirect would be skipped entirely.  Thus it was effectively
impossible to select the first option in the gateway dropdown.

Signed-off-by: Daniel Lenski <dlenski@gmail.com>
  • Loading branch information
dlenski committed Oct 8, 2018
1 parent 669c7d3 commit 7224312
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion auth-globalprotect.c
Expand Up @@ -401,6 +401,8 @@ static int parse_portal_xml(struct openconnect_info *vpninfo, xmlNode *xml_node,
choice->label, choice->name);
}
}
if (!vpninfo->authgroup && opt->nr_choices)
vpninfo->authgroup = strdup(opt->choices[0]->name);

if (vpninfo->write_new_config) {
buf_append(buf, " </ServerList>\n</GPPortal>\n");
Expand All @@ -412,7 +414,7 @@ static int parse_portal_xml(struct openconnect_info *vpninfo, xmlNode *xml_node,

/* process auth form to select gateway */
result = process_auth_form(vpninfo, form);
if (result != OC_FORM_RESULT_NEWGROUP)
if (result == OC_FORM_RESULT_CANCELLED || result < 0)
goto out;

/* redirect to the gateway (no-op if it's the same host) */
Expand Down

0 comments on commit 7224312

Please sign in to comment.