aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/libcurl/curl_easy_setopt.317
-rw-r--r--docs/libcurl/symbols-in-versions1
-rw-r--r--include/curl/curl.h7
-rw-r--r--include/curl/typecheck-gcc.h1
-rw-r--r--lib/url.c14
-rw-r--r--packages/OS400/README.OS4001
-rw-r--r--packages/OS400/ccsidcurl.c1
-rw-r--r--packages/OS400/curl.inc.in2
8 files changed, 37 insertions, 7 deletions
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index fb22306eb..0b507d856 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -1164,14 +1164,23 @@ user name to use for the transfer.
authentication. You should not use this option together with the (older)
CURLOPT_USERPWD option.
-In order to specify the password to be used in conjunction with the user name
-use the \fICURLOPT_PASSWORD\fP option. (Added in 7.19.1)
+To specify the password and login options, along with the user name, use the
+\fICURLOPT_PASSWORD\fP and \fICURLOPT_OPTIONS\fP options or alternatively use
+the older \CURLOPT_USERPWD\fP option instead. (Added in 7.19.1)
.IP CURLOPT_PASSWORD
Pass a char * as parameter, which should be pointing to the zero terminated
password to use for the transfer.
-The CURLOPT_PASSWORD option should be used in conjunction with
-the \fICURLOPT_USERNAME\fP option. (Added in 7.19.1)
+The CURLOPT_PASSWORD option should be used in conjunction with the
+\fICURLOPT_USERNAME\fP option. (Added in 7.19.1)
+.IP CURLOPT_OPTIONS
+Pass a char * as parameter, which should be pointing to the zero terminated
+options string to use for the transfer.
+
+\CURLOPT_OPTIONS\fP can be used to set protocol specific authentication options,
+such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*", and
+should be used in conjunction with the \fICURLOPT_USERNAME\fP option. (Added in
+7.34.0)
.IP CURLOPT_PROXYUSERNAME
Pass a char * as parameter, which should be pointing to the zero terminated
user name to use for the transfer while connecting to Proxy.
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index ac679d9d4..9f2fe9f75 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -417,6 +417,7 @@ CURLOPT_NOSIGNAL 7.10
CURLOPT_NOTHING 7.1.1 7.11.1 7.11.0
CURLOPT_OPENSOCKETDATA 7.17.1
CURLOPT_OPENSOCKETFUNCTION 7.17.1
+CURLOPT_OPTIONS 7.34.0
CURLOPT_PASSWDDATA 7.4.2 7.11.1 7.15.5
CURLOPT_PASSWDFUNCTION 7.4.2 7.11.1 7.15.5
CURLOPT_PASSWORD 7.19.1
diff --git a/include/curl/curl.h b/include/curl/curl.h
index e3c6bf279..14ff7c756 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -827,10 +827,10 @@ typedef enum {
/* Name of proxy to use. */
CINIT(PROXY, OBJECTPOINT, 4),
- /* "name:password" to use when fetching. */
+ /* "user:password;options" to use when fetching. */
CINIT(USERPWD, OBJECTPOINT, 5),
- /* "name:password" to use with proxy. */
+ /* "user:password" to use with proxy. */
CINIT(PROXYUSERPWD, OBJECTPOINT, 6),
/* Range to get, specified as an ASCII string. */
@@ -1569,6 +1569,9 @@ typedef enum {
* Only supported by the c-ares DNS backend */
CINIT(DNS_LOCAL_IP6, OBJECTPOINT, 223),
+ /* Set authentication options directly */
+ CINIT(OPTIONS, OBJECTPOINT, 224),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index e8f1dff9a..7feccf347 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -269,6 +269,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist,
(option) == CURLOPT_DNS_INTERFACE || \
(option) == CURLOPT_DNS_LOCAL_IP4 || \
(option) == CURLOPT_DNS_LOCAL_IP6 || \
+ (option) == CURLOPT_OPTIONS || \
0)
/* evaluates to true if option takes a curl_write_callback argument */
diff --git a/lib/url.c b/lib/url.c
index 36bd46455..7536877ba 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -1560,6 +1560,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
&data->set.str[STRING_PASSWORD],
&data->set.str[STRING_OPTIONS]);
break;
+
case CURLOPT_USERNAME:
/*
* authentication user name to use in the operation
@@ -1567,6 +1568,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
result = setstropt(&data->set.str[STRING_USERNAME],
va_arg(param, char *));
break;
+
case CURLOPT_PASSWORD:
/*
* authentication password to use in the operation
@@ -1574,6 +1576,15 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
result = setstropt(&data->set.str[STRING_PASSWORD],
va_arg(param, char *));
break;
+
+ case CURLOPT_OPTIONS:
+ /*
+ * authentication options to use in the operation
+ */
+ result = setstropt(&data->set.str[STRING_OPTIONS],
+ va_arg(param, char *));
+ break;
+
case CURLOPT_XOAUTH2_BEARER:
/*
* XOAUTH2 bearer token to use in the operation
@@ -1581,6 +1592,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
result = setstropt(&data->set.str[STRING_BEARER],
va_arg(param, char *));
break;
+
case CURLOPT_POSTQUOTE:
/*
* List of RAW FTP commands to use after a transfer
@@ -4824,7 +4836,7 @@ static CURLcode override_login(struct SessionHandle *data,
}
/*
- * Set password so it's available in the connection.
+ * Set the login details so they're available in the connection
*/
static CURLcode set_login(struct connectdata *conn,
const char *user, const char *passwd,
diff --git a/packages/OS400/README.OS400 b/packages/OS400/README.OS400
index 4a39738a9..62918c9b7 100644
--- a/packages/OS400/README.OS400
+++ b/packages/OS400/README.OS400
@@ -89,6 +89,7 @@ options:
CURLOPT_MAIL_AUTH
CURLOPT_NETRC_FILE
CURLOPT_NOPROXY
+ CURLOPT_OPTIONS
CURLOPT_PASSWORD
CURLOPT_PROXY
CURLOPT_PROXYPASSWORD
diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c
index e312c71ae..923bb1bdb 100644
--- a/packages/OS400/ccsidcurl.c
+++ b/packages/OS400/ccsidcurl.c
@@ -1145,6 +1145,7 @@ curl_easy_setopt_ccsid(CURL * curl, CURLoption tag, ...)
case CURLOPT_MAIL_AUTH:
case CURLOPT_NETRC_FILE:
case CURLOPT_NOPROXY:
+ case CURLOPT_OPTIONS:
case CURLOPT_PASSWORD:
case CURLOPT_PROXY:
case CURLOPT_PROXYPASSWORD:
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index edd516740..dfc172cd2 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -1180,6 +1180,8 @@
d c 10222
d CURLOPT_DNS_LOCAL_IP6...
d c 10223
+ d CURLOPT_OPTIONS...
+ d c 10224
*
/if not defined(CURL_NO_OLDIES)
d CURLOPT_SSLKEYPASSWD...