summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2017-04-27 15:18:49 +0200
committerKamil Dudka <kdudka@redhat.com>2017-06-28 08:02:58 +0200
commit8924f58c370afa756fc4fd13916dfdea91d21b21 (patch)
tree3a4787e4a02182513e80e356b3a6ce79cb876496 /include
parentcd1c9f08078d4a8566ed10f6df9ae9a729f3290b (diff)
downloadcurl-8924f58c370afa756fc4fd13916dfdea91d21b21.tar.gz
CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth
If libcurl was built with GSS-API support, it unconditionally advertised GSS-API authentication while connecting to a SOCKS5 proxy. This caused problems in environments with improperly configured Kerberos: a stock libcurl failed to connect, despite libcurl built without GSS-API connected fine using username and password. This commit introduces the CURLOPT_SOCKS5_AUTH option to control the allowed methods for SOCKS5 authentication at run time. Note that a new option was preferred over reusing CURLOPT_PROXYAUTH for compatibility reasons because the set of authentication methods allowed by default was different for HTTP and SOCKS5 proxies. Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html Closes https://github.com/curl/curl/pull/1454
Diffstat (limited to 'include')
-rw-r--r--include/curl/curl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 0b741e82d..82fb8aeb8 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -677,6 +677,8 @@ typedef enum {
#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2)
/* Deprecated since the advent of CURLAUTH_NEGOTIATE */
#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE
+/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */
+#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE
#define CURLAUTH_NTLM (((unsigned long)1)<<3)
#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4)
#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5)
@@ -1783,6 +1785,9 @@ typedef enum {
/* The request target, instead of extracted from the URL */
CINIT(REQUEST_TARGET, STRINGPOINT, 266),
+ /* bitmask of allowed auth methods for connections to SOCKS5 proxies */
+ CINIT(SOCKS5_AUTH, LONG, 267),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;