From 8636742256c724bee50452d9ef92ffd25b76b8a1 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 11 Nov 2010 16:41:59 +0100 Subject: [PATCH] HTTP Auth: Add CURLAUTH_ONLY This is a meta symbol. OR this value together with a single specific auth value to force libcurl to probe for un-restricted auth and if not, only that single auth algorithm is acceptable. For example you can use CURLAUTH_DIGEST|CURLAUTH_ONLY to make libcurl first probe for what method to use, but yet only consider Digest to be acceptable. Using _only_ CURLAUTH_DIGEST without the CURLAUTH_ONLY field, will make libcurl explicitly use Digest right away and not do any probing. --- docs/libcurl/curl_easy_setopt.3 | 4 ++++ docs/libcurl/symbols-in-versions | 1 + include/curl/curl.h | 3 +++ 3 files changed, 8 insertions(+) diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3 index d005b3ffc..3d76b6616 100644 --- a/docs/libcurl/curl_easy_setopt.3 +++ b/docs/libcurl/curl_easy_setopt.3 @@ -865,6 +865,10 @@ secure. This is a convenience macro that sets all bits except Basic and thus makes libcurl pick any it finds suitable. libcurl will automatically select the one it finds most secure. +.IP CURLAUTH_ONLY +This is a meta symbol. Or this value together with a single specific auth +value to force libcurl to probe for un-restricted auth and if not, only that +single auth algorithm is acceptable. (Added in 7.21.3) .RE .IP CURLOPT_PROXYAUTH Pass a long as parameter, which is set to a bitmask, to tell libcurl which diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions index a366ce2ab..fc5834d52 100644 --- a/docs/libcurl/symbols-in-versions +++ b/docs/libcurl/symbols-in-versions @@ -20,6 +20,7 @@ CURLAUTH_DIGEST_IE 7.19.3 CURLAUTH_GSSNEGOTIATE 7.10.6 CURLAUTH_NONE 7.10.6 CURLAUTH_NTLM 7.10.6 +CURLAUTH_ONLY 7.21.3 CURLCLOSEPOLICY_CALLBACK 7.7 CURLCLOSEPOLICY_LEAST_RECENTLY_USED 7.7 CURLCLOSEPOLICY_LEAST_TRAFFIC 7.7 diff --git a/include/curl/curl.h b/include/curl/curl.h index e95887fe7..fbd0d9b01 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -585,6 +585,9 @@ typedef enum { #define CURLAUTH_GSSNEGOTIATE (1<<2) /* GSS-Negotiate */ #define CURLAUTH_NTLM (1<<3) /* NTLM */ #define CURLAUTH_DIGEST_IE (1<<4) /* Digest with IE flavour */ +#define CURLAUTH_ONLY (1<<31) /* used together with a single other + type to force no auth or just that + single type */ #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) /* all fine types set */ #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))