Cris Bailiff's patch that should make us do NTLM correctly. When we've

authenticated our connection, we can continue without any Authorization:
headers as long as our connection is maintained.
This commit is contained in:
Daniel Stenberg 2003-06-13 10:15:55 +00:00
Родитель 9aae16c236
Коммит 8288862b7e
1 изменённых файлов: 13 добавлений и 1 удалений

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

@ -367,7 +367,8 @@ CURLcode Curl_output_ntlm(struct connectdata *conn)
return CURLE_OUT_OF_MEMORY; /* FIX TODO */
}
else {
/* We are not in the first state, create a type-3 message */
if(NTLMSTATE_TYPE2 == data->state.ntlm.state) {
/* We received the type-2 already, create a type-3 message */
/*
My test-IE session sent this type-3:
@ -557,6 +558,17 @@ CURLcode Curl_output_ntlm(struct connectdata *conn)
else
return CURLE_OUT_OF_MEMORY; /* FIX TODO */
data->state.ntlm.state = NTLMSTATE_TYPE3; /* we sent a type-3 */
} else
if(NTLMSTATE_TYPE3 == data->state.ntlm.state) {
/* connection is already authenticated,
* don't send a header in future requests */
if(conn->allocptr.userpwd) {
free(conn->allocptr.userpwd);
conn->allocptr.userpwd=NULL;
}
}
}
return CURLE_OK;