- 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.
This commit is contained in:
Daniel Stenberg 2009-02-24 08:30:09 +00:00
Родитель 2afb88e2ce
Коммит ea6531cf32
3 изменённых файлов: 13 добавлений и 4 удалений

Просмотреть файл

@ -6,6 +6,11 @@
Changelog 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) Daniel Stenberg (23 Feb 2009)
- After a bug reported by James Cheng I've made curl_easy_getinfo() for - After a bug reported by James Cheng I've made curl_easy_getinfo() for
CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return

Просмотреть файл

@ -43,6 +43,7 @@ This release includes the following bugfixes:
o ease creation of libcurl Mac OS X Framework o ease creation of libcurl Mac OS X Framework
o CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD are -1 o CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD are -1
if unknown if unknown
o Negotiate proxy authentication
This release includes the following known bugs: This release includes the following known bugs:
@ -55,6 +56,6 @@ advice from friends like these:
Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor, Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor,
Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet, Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet,
Kamil Dudka, Patrik Thunstrom, Linus Nielsen Feltzing, Mark Incley, 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) Thanks! (and sorry if I forgot to mention someone)

Просмотреть файл

@ -516,6 +516,10 @@ output_auth_headers(struct connectdata *conn,
struct SessionHandle *data = conn->data; struct SessionHandle *data = conn->data;
const char *auth=NULL; const char *auth=NULL;
CURLcode result = CURLE_OK; CURLcode result = CURLE_OK;
#ifdef HAVE_GSSAPI
struct negotiatedata *negdata = proxy?
&data->state.proxyneg:&data->state.negotiate;
#endif
#ifndef CURL_DISABLE_CRYPTO_AUTH #ifndef CURL_DISABLE_CRYPTO_AUTH
(void)request; (void)request;
@ -524,14 +528,13 @@ output_auth_headers(struct connectdata *conn,
#ifdef HAVE_GSSAPI #ifdef HAVE_GSSAPI
if((authstatus->picked == CURLAUTH_GSSNEGOTIATE) && if((authstatus->picked == CURLAUTH_GSSNEGOTIATE) &&
data->state.negotiate.context && negdata->context && !GSS_ERROR(negdata->status)) {
!GSS_ERROR(data->state.negotiate.status)) {
auth="GSS-Negotiate"; auth="GSS-Negotiate";
result = Curl_output_negotiate(conn, proxy); result = Curl_output_negotiate(conn, proxy);
if(result) if(result)
return result; return result;
authstatus->done = TRUE; authstatus->done = TRUE;
data->state.negotiate.state = GSS_AUTHSENT; negdata->state = GSS_AUTHSENT;
} }
else else
#endif #endif