From: Daniel Stenberg Date: Thu, 8 Mar 2001 10:32:27 +0000 (+0000) Subject: return from transfer when all headers have been received and nobody is set, X-Git-Tag: upstream/7.37.1~17042 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5cd4c3ed2463588010a83c7808053fa3de5ee6a2;p=platform%2Fupstream%2Fcurl.git return from transfer when all headers have been received and nobody is set, as is the case when doing HEAD requests --- diff --git a/lib/transfer.c b/lib/transfer.c index 80cdc0968..3816e7fb6 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -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. */ }