On Thu, 2018-07-05 at 12:35 -0500, Brian J. Johnson wrote:
> On 07/04/2018 03:12 AM, David Woodhouse wrote:
> >
> >
> > On Tue, 2018-07-03 at 15:12 -0500, Brian J. Johnson wrote:
> > > Any updates on this issue? I'm running into it myself on Ubuntu
> > > 18.04. I'm unable to connect to my company's Pulse VPN, since I can't
> > > select the correct authgroup/realm. I'd be happy to try a test build
> > > against my environment.
> >
> > Did you try the suggestion I made? Which would look something like
> > this:
> >
> > --- a/auth-juniper.c
> > +++ b/auth-juniper.c
> > @@ -189,8 +189,6 @@ static int parse_select_node(struct openconnect_info
> > *vpninfo, struct oc_auth_fo
> > xmlnode_get_prop(node, "name", &opt->form.name);
> > opt->form.label = strdup(opt->form.name);
> > opt->form.type = OC_FORM_OPT_SELECT;
> > - if (!strcmp(opt->form.name, "realm"))
> > - form->authgroup_opt = opt;
> >
> > for (child = node->children; child; child = child->next) {
> > struct oc_choice **new_choices;
> >
> >
> > Or if you're not able to build for yourself and you're not using HTTP
> > Digest auth to connect to anything (hint: you aren't), just:
> >
> > sudo s/realm/rXXXm/g -i /usr/lib/x86_64-linux-gnu/libopenconnect.so
> >
>
> David,
>
> I tried both (patching and building), and in both cases, the behavior
> was the same: the second realm in the list is selected by default
> (which is handy, since that's the one I happen to need), but I'm unable
> to select the first realm. If I select it, the menu immediately snaps
> back to the second entry, and the cursor jumps to the "password" field.
> So it behaves exactly the same as with the released build, except that
> the second realm is selected by default instead of the first.
>
> So sorry, this doesn't seem to be a fix.
Hm, try this one?
diff --git a/auth-juniper.c b/auth-juniper.c
index 30ceb3a..5606958 100644
--- a/auth-juniper.c
+++ b/auth-juniper.c
@@ -188,8 +188,11 @@ static int parse_select_node(struct openconnect_info
*vpninfo, struct oc_auth_fo
xmlnode_get_prop(node, "name", &opt->form.name);
opt->form.label = strdup(opt->form.name);
opt->form.type = OC_FORM_OPT_SELECT;
- if (!strcmp(opt->form.name, "realm"))
+
+ if (!strcmp(opt->form.name, "realm")) {
form->authgroup_opt = opt;
+ form->authgroup_selection = -1;
+ }
for (child = node->children; child; child = child->next) {
struct oc_choice **new_choices;
@@ -209,6 +212,13 @@ static int parse_select_node(struct openconnect_info
*vpninfo, struct oc_auth_fo
free(choice);
return -ENOMEM;
}
+ /* Juniper server doesn't explicitly tell us which authgroup is
currently
+ * selected, and in fact doesn't really even need the NEWGROUP
behaviour
+ * at all. But users like using the --authgroup option for the
realm, so
+ * support it this way, by setting authgroup_selection
accordingly. */
+ if (opt == form->authgroup_opt && vpninfo->authgroup &&
!strcmp(choice->name, vpninfo->authgroup))
+ form->authgroup_selection = opt->nr_choices;
+
opt->choices = new_choices;
opt->choices[opt->nr_choices++] = choice;
}
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ openconnect-devel mailing list [email protected] http://lists.infradead.org/mailman/listinfo/openconnect-devel
