Skip to content

Commit

Permalink
return from transfer when all headers have been received and nobody i…
Browse files Browse the repository at this point in the history
…s set,

as is the case when doing HEAD requests
  • Loading branch information
bagder committed Mar 8, 2001
1 parent 147a673 commit 5cd4c3e
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions lib/transfer.c
Expand Up @@ -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 */
}

Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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
Expand All @@ -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. */
}
Expand Down

0 comments on commit 5cd4c3e

Please sign in to comment.