Any news on this? 2017-05-18 14:25 GMT-07:00 Dmitrii Sutiagin <f3flight at gmail.com>: > Hi David, > > Q: I'm a little confused by the motivation ? why does adding that '--url' > before the <server> argument really make anything easier? > A: The value here is the ability to define <server> in a config file. That's > the sole purpose of the patch. I added a new argument "--url" for this. > Specifying both --url and <server> does not make sense, but still allowed - > did not want to put unnecessary restrictions and to keep > backward compatibility. Defining <server> in config allows to use syntax > like "openconnect --config=XXX" to run openconnect, which in turn is > useful for portability and for systemd units, allowing to set up > openconnect similarly to openvpn: > https://wiki.archlinux.org/index.php/OpenVPN#systemd_service_configuration > > It makes sense to also ship a .service file similar to openvpn, but that > would be a separate commit (and I'd need to figure out where to put such > file in the repo...). > > Here is the patch once again: > > ############################################ > commit 52e665b7bf8e8f08d78a36e84ff67c0ef5183ee1 > Author: Dmitrii Sutiagin <f3flight at gmail.com> > Date: Thu May 18 12:49:40 2017 -0700 > > Add URL config option > > This new option allows putting <server> argument into a config file, > which in turn allows cleaner setups of systemd units / automation. > If --url is used then argument can be omitted. > If both --url and <server> are specified then <server> is used. > > Signed-off-by: Dmitrii Sutiagin <f3flight at gmail.com> > > diff --git a/main.c b/main.c > index 7869f72..eab4f41 100644 > --- a/main.c > +++ b/main.c > @@ -188,6 +188,7 @@ enum { > OPT_LOCAL_HOSTNAME, > OPT_PROTOCOL, > OPT_PASSTOS, > + OPT_URL, > }; > > #ifdef __sun__ > @@ -269,6 +270,7 @@ static const struct option long_options[] = { > OPTION("dump-http-traffic", 0, OPT_DUMP_HTTP), > OPTION("no-system-trust", 0, OPT_NO_SYSTEM_TRUST), > OPTION("protocol", 1, OPT_PROTOCOL), > + OPTION("url", 1, OPT_URL), > #ifdef OPENCONNECT_GNUTLS > OPTION("gnutls-debug", 1, OPT_GNUTLS_DEBUG), > #endif > @@ -867,6 +869,7 @@ static void usage(void) > printf(" --resolve=HOST:IP %s\n", _("Use IP when > connecting to HOST")); > printf(" --os=STRING %s\n", _("OS type > (linux,linux-64,win,...) to report")); > printf(" --dtls-local-port=PORT %s\n", _("Set local port > for DTLS datagrams")); > + printf(" --url=URL %s\n", _("Set URL to > connect to. If set, <server> argument can be omitted")); > print_supported_protocols_usage(); > > printf("\n"); > @@ -1068,6 +1071,7 @@ int main(int argc, char **argv) > oc_token_mode_t token_mode = OC_TOKEN_MODE_NONE; > int reconnect_timeout = 300; > int ret; > + char *url = NULL; > #ifdef HAVE_NL_LANGINFO > char *charset; > #endif > @@ -1431,6 +1435,9 @@ int main(int argc, char **argv) > case OPT_TIMESTAMP: > timestamp = 1; > break; > + case OPT_URL: > + url = keep_config_arg(); > + break; > #ifdef OPENCONNECT_GNUTLS > case OPT_GNUTLS_DEBUG: > gnutls_global_set_log_level(atoi(config_arg)); > @@ -1448,9 +1455,12 @@ int main(int argc, char **argv) > if (optind < argc - 1) { > fprintf(stderr, _("Too many arguments on command line\n")); > usage(); > - } else if (optind > argc - 1) { > - fprintf(stderr, _("No server specified\n")); > - usage(); > + } else if (optind == argc - 1) { > + url = strdup(argv[optind]); > + } > + if (!(url && strlen(url))) { > + fprintf(stderr, _("No URL or server specified\n")); > + usage(); > } > > if (!vpninfo->sslkey) > @@ -1501,16 +1511,12 @@ int main(int argc, char **argv) > if (vpninfo->sslkey && do_passphrase_from_fsid) > openconnect_passphrase_from_fsid(vpninfo); > > - if (config_lookup_host(vpninfo, argv[optind])) > + if (config_lookup_host(vpninfo, url)) > exit(1); > > if (!vpninfo->hostname) { > - char *url = strdup(argv[optind]); > - > if (openconnect_parse_url(vpninfo, url)) > exit(1); > - > - free(url); > } > > /* Historically, the path in the URL superseded the one in the > ############################################ > > On 05/18/2017 01:34 PM, David Woodhouse wrote: >> >> On Thu, 2017-05-18 at 13:00 -0700, Dmitry Sutyagin wrote: >>> >>> Hi everyone, I wanted to contribute with the following patch: >>> >>> ############################################ >>> commit 52e665b7bf8e8f08d78a36e84ff67c0ef5183ee1 >>> Author: Dmitrii Sutiagin <f3flight at gmail.com> >>> Date: Thu May 18 12:49:40 2017 -0700 >>> >>> Add URL config option >>> >>> This new option allows putting argument into a config file, >>> which in turn allows cleaner setups of systemd units / automation. >>> If --url is used then argument can be omitted. >>> If both --url and are specified then is used. >>> >>> Signed-off-by: Dmitrii Sutiagin <f3flight at gmail.com> >> >> >> Hi Dmitry, thanks for the patch. Unfortunately it was whitespace- >> damaged so won't apply. Can you try sending it from a better mail >> client? You can send it to yourself first, then save it to a file and >> try to apply what you receive. >> >> I'm a little confused by the motivation ? why does adding that '--url' >> before the <server> argument really make anything easier? >> >