From 1033acd92db83c3c87d071ef6debe9b1d0628b46 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Thu, 6 Nov 2014 10:23:08 +0000 Subject: http_digest: Added required SSPI based variables to digest structure --- lib/http_digest.c | 9 ++++++++- lib/urldata.h | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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 { -- cgit v1.2.3