Loading lib/getinfo.c +6 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,12 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...) case CURLINFO_PRIVATE: *param_charp = data->set.private; break; case CURLINFO_HTTPAUTH_AVAIL: *param_longp = data->info.httpauthavail; break; case CURLINFO_PROXYAUTH_AVAIL: *param_longp = data->info.proxyauthavail; break; default: return CURLE_BAD_FUNCTION_ARGUMENT; } Loading lib/http.c +15 −3 Original line number Diff line number Diff line Loading @@ -287,9 +287,17 @@ CURLcode Curl_http_auth(struct connectdata *conn, */ struct SessionHandle *data = conn->data; char *start = (httpcode == 407) ? header+strlen("Proxy-authenticate:"): header+strlen("WWW-Authenticate:"); long *availp; char *start; if (httpcode == 407) { start = header+strlen("Proxy-authenticate:"); availp = &data->info.proxyauthavail; } else { start = header+strlen("WWW-Authenticate:"); availp = &data->info.httpauthavail; } /* * Switch from proxy to web authentication and back if needed */ Loading @@ -305,6 +313,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, #ifdef GSSAPI if (checkprefix("GSS-Negotiate", start)) { *availp |= CURLAUTH_GSSNEGOTIATE; if(data->state.authwant == CURLAUTH_GSSNEGOTIATE) { /* if exactly this is wanted, go */ int neg = Curl_input_negotiate(conn, start); Loading @@ -320,6 +329,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, #ifdef USE_SSLEAY /* NTLM support requires the SSL crypto libs */ if(checkprefix("NTLM", start)) { *availp |= CURLAUTH_NTLM; if(data->state.authwant == CURLAUTH_NTLM) { /* NTLM authentication is activated */ CURLntlm ntlm = Loading @@ -337,6 +347,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, else #endif if(checkprefix("Digest", start)) { *availp |= CURLAUTH_DIGEST; if(data->state.authwant == CURLAUTH_DIGEST) { /* Digest authentication is activated */ CURLdigest dig = CURLDIGEST_BAD; Loading @@ -363,6 +374,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, } } else if(checkprefix("Basic", start)) { *availp |= CURLAUTH_BASIC; if((data->state.authwant == CURLAUTH_BASIC) && (httpcode == 401)) { /* We asked for Basic authentication but got a 401 back anyway, which basicly means our name+password isn't Loading lib/urldata.h +3 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,9 @@ struct PureInfo { long header_size; /* size of read header(s) in bytes */ long request_size; /* the amount of bytes sent in the request(s) */ long proxyauthavail; long httpauthavail; char *contenttype; /* the content type of the object */ }; Loading Loading
lib/getinfo.c +6 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,12 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...) case CURLINFO_PRIVATE: *param_charp = data->set.private; break; case CURLINFO_HTTPAUTH_AVAIL: *param_longp = data->info.httpauthavail; break; case CURLINFO_PROXYAUTH_AVAIL: *param_longp = data->info.proxyauthavail; break; default: return CURLE_BAD_FUNCTION_ARGUMENT; } Loading
lib/http.c +15 −3 Original line number Diff line number Diff line Loading @@ -287,9 +287,17 @@ CURLcode Curl_http_auth(struct connectdata *conn, */ struct SessionHandle *data = conn->data; char *start = (httpcode == 407) ? header+strlen("Proxy-authenticate:"): header+strlen("WWW-Authenticate:"); long *availp; char *start; if (httpcode == 407) { start = header+strlen("Proxy-authenticate:"); availp = &data->info.proxyauthavail; } else { start = header+strlen("WWW-Authenticate:"); availp = &data->info.httpauthavail; } /* * Switch from proxy to web authentication and back if needed */ Loading @@ -305,6 +313,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, #ifdef GSSAPI if (checkprefix("GSS-Negotiate", start)) { *availp |= CURLAUTH_GSSNEGOTIATE; if(data->state.authwant == CURLAUTH_GSSNEGOTIATE) { /* if exactly this is wanted, go */ int neg = Curl_input_negotiate(conn, start); Loading @@ -320,6 +329,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, #ifdef USE_SSLEAY /* NTLM support requires the SSL crypto libs */ if(checkprefix("NTLM", start)) { *availp |= CURLAUTH_NTLM; if(data->state.authwant == CURLAUTH_NTLM) { /* NTLM authentication is activated */ CURLntlm ntlm = Loading @@ -337,6 +347,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, else #endif if(checkprefix("Digest", start)) { *availp |= CURLAUTH_DIGEST; if(data->state.authwant == CURLAUTH_DIGEST) { /* Digest authentication is activated */ CURLdigest dig = CURLDIGEST_BAD; Loading @@ -363,6 +374,7 @@ CURLcode Curl_http_auth(struct connectdata *conn, } } else if(checkprefix("Basic", start)) { *availp |= CURLAUTH_BASIC; if((data->state.authwant == CURLAUTH_BASIC) && (httpcode == 401)) { /* We asked for Basic authentication but got a 401 back anyway, which basicly means our name+password isn't Loading
lib/urldata.h +3 −0 Original line number Diff line number Diff line Loading @@ -575,6 +575,9 @@ struct PureInfo { long header_size; /* size of read header(s) in bytes */ long request_size; /* the amount of bytes sent in the request(s) */ long proxyauthavail; long httpauthavail; char *contenttype; /* the content type of the object */ }; Loading