mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05: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:
parent
147a673063
commit
5cd4c3ed24
@ -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. */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user