Don't close the connection if we're in a known negotiation mode and we won't

send any data anyway. Probably the bug Tom Moers noticed.
This commit is contained in:
Daniel Stenberg 2005-03-29 12:28:25 +00:00
Родитель f00f050d1b
Коммит 158588640a
1 изменённых файлов: 21 добавлений и 15 удалений

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

@ -230,21 +230,27 @@ static CURLcode perhapsrewind(struct connectdata *conn)
bytessent = http->writebytecount;
/* figure out how much data we are expected to send */
switch(data->set.httpreq) {
case HTTPREQ_POST:
if(data->set.postfieldsize != -1)
expectsend = data->set.postfieldsize;
break;
case HTTPREQ_PUT:
if(data->set.infilesize != -1)
expectsend = data->set.infilesize;
break;
case HTTPREQ_POST_FORM:
expectsend = http->postsize;
break;
default:
break;
if(conn->bits.authneg)
/* This is a state where we are known to be negotiating and we don't send
any data then. */
expectsend = 0;
else {
/* figure out how much data we are expected to send */
switch(data->set.httpreq) {
case HTTPREQ_POST:
if(data->set.postfieldsize != -1)
expectsend = data->set.postfieldsize;
break;
case HTTPREQ_PUT:
if(data->set.infilesize != -1)
expectsend = data->set.infilesize;
break;
case HTTPREQ_POST_FORM:
expectsend = http->postsize;
break;
default:
break;
}
}
conn->bits.rewindaftersend = FALSE; /* default */