From 2eb94acb95d244f797d48a9e51ad97c57623c262 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 27 Apr 2001 18:03:44 +0000 Subject: [PATCH] When Content-Length:0 is received, we now bail now and return success directly after all the headers are received! --- lib/transfer.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/transfer.c b/lib/transfer.c index 805484bba..0fc575496 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -361,6 +361,22 @@ Transfer(struct connectdata *c_conn) */ if(data->bits.no_body) return CURLE_OK; + + if(!conn->bits.close) { + /* If this is not the last request before a close, we must + set the maximum download size to the size of the + expected document or else, we won't know when to stop + reading! */ + if(-1 != conn->size) + conn->maxdownload = conn->size; + + /* If max download size is *zero* (nothing) we already + have nothing and can safely return ok now! */ + if(0 == conn->maxdownload) + return CURLE_OK; + + /* What to do if the size is *not* known? */ + } break; /* exit header line loop */ } @@ -583,16 +599,6 @@ Transfer(struct connectdata *c_conn) } /* two valid time strings */ } /* we have a time condition */ - if(!conn->bits.close) { - /* If this is not the last request before a close, we must - set the maximum download size to the size of the expected - document or else, we won't know when to stop reading! */ - if(-1 != conn->size) - conn->maxdownload = conn->size; - - /* What to do if the size is *not* known? */ - } - } /* this is HTTP */ } /* this is the first time we write a body part */ bodywrites++;