1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

return from transfer when all headers have been received and nobody is set,

as is the case when doing HEAD requests
This commit is contained in:
Daniel Stenberg 2001-03-08 10:32:27 +00:00
parent 147a673063
commit 5cd4c3ed24

View File

@ -338,6 +338,18 @@ _Transfer(struct connectdata *c_conn)
return urg; return urg;
data->header_size += p - data->headerbuff; data->header_size += p - data->headerbuff;
/*
* end-of-headers.
*
* If we requested a "no body" and this isn't a "close"
* connection, this is a good time to get out and return
* home.
*/
if(!conn->bits.close && data->bits.no_body)
return CURLE_OK;
break; /* exit header line loop */ break; /* exit header line loop */
} }
@ -473,11 +485,6 @@ _Transfer(struct connectdata *c_conn)
is non-headers. */ is non-headers. */
if (str && !header && ((signed int)nread > 0)) { if (str && !header && ((signed int)nread > 0)) {
/*
* If we requested a HTTP header, this might be a good time to get
* out and return home.
*/
if(0 == bodywrites) { if(0 == bodywrites) {
/* These checks are only made the first time we are about to /* These checks are only made the first time we are about to
write a piece of the body */ write a piece of the body */
@ -539,7 +546,7 @@ _Transfer(struct connectdata *c_conn)
if(conn->bits.chunk) { if(conn->bits.chunk) {
/* /*
* Bless me father for I have sinned. Here come a chunked * Bless me father for I have sinned. Here comes a chunked
* transfer flying and we need to decode this properly. While * transfer flying and we need to decode this properly. While
* the name says read, this function both reads and writes away * the name says read, this function both reads and writes away
* the data. The returned 'nread' holds the number of actual * the data. The returned 'nread' holds the number of actual
@ -553,7 +560,7 @@ _Transfer(struct connectdata *c_conn)
/* we're done reading chunks! */ /* we're done reading chunks! */
keepon &= ~KEEP_READ; /* read no more */ keepon &= ~KEEP_READ; /* read no more */
/* There are now (~res) bytes at the end of the str buffer /* There are now possibly bytes at the end of the str buffer
that weren't written to the client, but we don't care that weren't written to the client, but we don't care
about them right now. */ about them right now. */
} }