Skip to content

Commit

Permalink
- Brian J. Murrell found out that Negotiate proxy authentication didn…
Browse files Browse the repository at this point in the history
…'t work.

  It happened because the code used the struct for server-based auth all the
  time for both proxy and server auth which of course was wrong.
  • Loading branch information
bagder committed Feb 24, 2009
1 parent 2afb88e commit ea6531c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
5 changes: 5 additions & 0 deletions CHANGES
Expand Up @@ -6,6 +6,11 @@

Changelog

Daniel Stenberg (24 Feb 2009)
- Brian J. Murrell found out that Negotiate proxy authentication didn't work.
It happened because the code used the struct for server-based auth all the
time for both proxy and server auth which of course was wrong.

Daniel Stenberg (23 Feb 2009)
- After a bug reported by James Cheng I've made curl_easy_getinfo() for
CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return
Expand Down
3 changes: 2 additions & 1 deletion RELEASE-NOTES
Expand Up @@ -43,6 +43,7 @@ This release includes the following bugfixes:
o ease creation of libcurl Mac OS X Framework
o CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD are -1
if unknown
o Negotiate proxy authentication

This release includes the following known bugs:

Expand All @@ -55,6 +56,6 @@ advice from friends like these:
Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor,
Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet,
Kamil Dudka, Patrik Thunstrom, Linus Nielsen Feltzing, Mark Incley,
Daniel Johnson, James Cheng
Daniel Johnson, James Cheng, Brian J. Murrell

Thanks! (and sorry if I forgot to mention someone)
9 changes: 6 additions & 3 deletions lib/http.c
Expand Up @@ -516,6 +516,10 @@ output_auth_headers(struct connectdata *conn,
struct SessionHandle *data = conn->data;
const char *auth=NULL;
CURLcode result = CURLE_OK;
#ifdef HAVE_GSSAPI
struct negotiatedata *negdata = proxy?
&data->state.proxyneg:&data->state.negotiate;
#endif

#ifndef CURL_DISABLE_CRYPTO_AUTH
(void)request;
Expand All @@ -524,14 +528,13 @@ output_auth_headers(struct connectdata *conn,

#ifdef HAVE_GSSAPI
if((authstatus->picked == CURLAUTH_GSSNEGOTIATE) &&
data->state.negotiate.context &&
!GSS_ERROR(data->state.negotiate.status)) {
negdata->context && !GSS_ERROR(negdata->status)) {
auth="GSS-Negotiate";
result = Curl_output_negotiate(conn, proxy);
if(result)
return result;
authstatus->done = TRUE;
data->state.negotiate.state = GSS_AUTHSENT;
negdata->state = GSS_AUTHSENT;
}
else
#endif
Expand Down

0 comments on commit ea6531c

Please sign in to comment.