From: Steve Holme Date: Thu, 6 Nov 2014 10:23:08 +0000 (+0000) Subject: http_digest: Added required SSPI based variables to digest structure X-Git-Tag: curl-7_40_0~432 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1033acd92db83c3c87d071ef6debe9b1d0628b46;p=curl http_digest: Added required SSPI based variables to digest structure --- diff --git a/lib/http_digest.c b/lib/http_digest.c index a75ca9d59..f52c8dd22 100644 --- a/lib/http_digest.c +++ b/lib/http_digest.c @@ -79,6 +79,7 @@ CURLcode Curl_output_digest(struct connectdata *conn, char *tmp; char *response; size_t len; + bool have_chlg; /* Point to the address of the pointer that holds the string to send to the server, which is for a plain host or for a HTTP proxy */ @@ -116,7 +117,13 @@ CURLcode Curl_output_digest(struct connectdata *conn, if(!passwdp) passwdp=""; - if(!d->nonce) { +#if defined(USE_WINDOWS_SSPI) + have_chlg = d->input_token ? TRUE : FALSE; +#else + have_chlg = d->nonce ? TRUE : FALSE; +#endif + + if(!have_chlg) { authp->done = FALSE; return CURLE_OK; } diff --git a/lib/urldata.h b/lib/urldata.h index 62a2b8048..f0f903844 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -391,6 +391,9 @@ struct curl_ssl_session { /* Struct used for Digest challenge-response authentication */ struct digestdata { +#if defined(USE_WINDOWS_SSPI) + BYTE *input_token; +#else char *nonce; char *cnonce; char *realm; @@ -400,6 +403,7 @@ struct digestdata { char *qop; char *algorithm; int nc; /* nounce count */ +#endif }; typedef enum {