diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2014-07-11 12:11:14 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-07-16 17:26:08 +0200 |
commit | 3de576efda1b9a754bc16c8b183403669a144543 (patch) | |
tree | ca32485c2a3bbdc67525585f1b637e0f43909489 | |
parent | 6bc76194e8c56a7a06dc6bd2ba99e112321d49e3 (diff) |
Fix negotiate auth to proxies to track correct state
-rw-r--r-- | lib/http.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/http.c b/lib/http.c index 504bcb62e..4931dd897 100644 --- a/lib/http.c +++ b/lib/http.c @@ -737,6 +737,10 @@ CURLcode Curl_http_input_auth(struct connectdata *conn, bool proxy, */ struct SessionHandle *data = conn->data; +#ifdef USE_HTTP_NEGOTIATE + struct negotiatedata *negdata = proxy? + &data->state.proxyneg:&data->state.negotiate; +#endif unsigned long *availp; struct auth *authp; @@ -775,8 +779,7 @@ CURLcode Curl_http_input_auth(struct connectdata *conn, bool proxy, authp->avail |= CURLAUTH_GSSNEGOTIATE; if(authp->picked == CURLAUTH_GSSNEGOTIATE) { - if(data->state.negotiate.state == GSS_AUTHSENT || - data->state.negotiate.state == GSS_AUTHNONE) { + if(negdata->state == GSS_AUTHSENT || negdata->state == GSS_AUTHNONE) { neg = Curl_input_negotiate(conn, proxy, auth); if(neg == 0) { DEBUGASSERT(!data->req.newurl); @@ -785,7 +788,7 @@ CURLcode Curl_http_input_auth(struct connectdata *conn, bool proxy, return CURLE_OUT_OF_MEMORY; data->state.authproblem = FALSE; /* we received GSS auth info and we dealt with it fine */ - data->state.negotiate.state = GSS_AUTHRECV; + negdata->state = GSS_AUTHRECV; } else data->state.authproblem = TRUE; |