aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tool_cfgable.c2
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_getparam.c12
-rw-r--r--src/tool_operate.c3
4 files changed, 15 insertions, 3 deletions
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index da11f4afe..1c55c296f 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -96,6 +96,8 @@ void free_config_fields(struct Configurable *config)
Curl_safefree(config->krblevel);
Curl_safefree(config->trace_dump);
+ Curl_safefree(config->xoauth2_bearer);
+
config->trace_stream = NULL; /* closed elsewhere when appropriate */
Curl_safefree(config->writeout);
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index 144552e84..a12bdcd32 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -208,6 +208,7 @@ struct Configurable {
#ifdef CURLDEBUG
bool test_event_based;
#endif
+ char *xoauth2_bearer; /* XOAUTH2 bearer token */
}; /* struct Configurable */
void free_config_fields(struct Configurable *config);
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index d9deb3b2b..813cc70c0 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -75,6 +75,7 @@ static const struct LongShort aliases[]= {
{"*", "url", TRUE},
{"*a", "random-file", TRUE},
{"*b", "egd-file", TRUE},
+ {"*B", "bearer", TRUE},
{"*c", "connect-timeout", TRUE},
{"*d", "ciphers", TRUE},
{"*e", "disable-epsv", FALSE},
@@ -498,6 +499,9 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
case 'b': /* egd-file */
GetStr(&config->egd_file, nextarg);
break;
+ case 'B': /* XOAUTH2 Bearer */
+ GetStr(&config->xoauth2_bearer, nextarg);
+ break;
case 'c': /* connect-timeout */
err = str2udouble(&config->connecttimeout, nextarg);
if(err)
@@ -1632,9 +1636,11 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
/* user:password */
GetStr(&config->userpwd, nextarg);
cleanarg(nextarg);
- err = checkpasswd("host", &config->userpwd);
- if(err)
- return err;
+ if(!config->xoauth2_bearer) {
+ err = checkpasswd("host", &config->userpwd);
+ if(err)
+ return err;
+ }
break;
case 'U':
/* Proxy user:password */
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 60d09ff25..a37e0c84d 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -977,6 +977,9 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
else if(!config->use_metalink)
my_setopt(curl, CURLOPT_HEADER, config->include_headers?1L:0L);
+ if(config->xoauth2_bearer)
+ my_setopt_str(curl, CURLOPT_XOAUTH2_BEARER, config->xoauth2_bearer);
+
#if !defined(CURL_DISABLE_PROXY)
{
/* TODO: Make this a run-time check instead of compile-time one. */