Skip to content
Snippets Groups Projects
Commit 5cd4c3ed authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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

as is the case when doing HEAD requests
parent 147a6730
No related branches found
No related tags found
No related merge requests found
......@@ -338,6 +338,18 @@ _Transfer(struct connectdata *c_conn)
return urg;
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 */
}
......@@ -473,11 +485,6 @@ _Transfer(struct connectdata *c_conn)
is non-headers. */
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) {
/* These checks are only made the first time we are about to
write a piece of the body */
......@@ -539,7 +546,7 @@ _Transfer(struct connectdata *c_conn)
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
* the name says read, this function both reads and writes away
* the data. The returned 'nread' holds the number of actual
......@@ -553,7 +560,7 @@ _Transfer(struct connectdata *c_conn)
/* we're done reading chunks! */
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
about them right now. */
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment