From cc90a235f4792febd308640c6463c8bdc3aec863 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 5 Feb 2004 15:50:16 +0000 Subject: if an empty 'transfer-encoding:' header is provided, we switch off the chunky coding of uploads --- lib/http.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/http.c b/lib/http.c index 3bab60df3..665906196 100644 --- a/lib/http.c +++ b/lib/http.c @@ -1123,17 +1123,16 @@ CURLcode Curl_http(struct connectdata *conn) conn->allocptr.cookie = NULL; if(!conn->bits.upload_chunky && (data->set.httpreq != HTTPREQ_GET)) { - /* not a chunky transfer but data is to be sent */ + /* not a chunky transfer yet, but data is to be sent */ ptr = checkheaders(data, "Transfer-Encoding:"); if(ptr) { /* Some kind of TE is requested, check if 'chunked' is chosen */ - if(Curl_compareheader(ptr, "Transfer-Encoding:", "chunked")) - /* we have been told explicitly to upload chunky so deal with it! */ - conn->bits.upload_chunky = TRUE; + conn->bits.upload_chunky = + Curl_compareheader(ptr, "Transfer-Encoding:", "chunked"); + te = ""; } } - - if(conn->bits.upload_chunky) { + else if(conn->bits.upload_chunky) { /* RFC2616 section 4.4: Messages MUST NOT include both a Content-Length header field and a non-identity transfer-coding. If the message does include a non- @@ -1143,8 +1142,9 @@ CURLcode Curl_http(struct connectdata *conn) te = "Transfer-Encoding: chunked\r\n"; } else { - /* The "Transfer-Encoding:" header was already added. */ te = ""; + conn->bits.upload_chunky = FALSE; /* transfer-encoding was disabled, + so don't chunkify this! */ } } -- cgit v1.2.3