From 958987c214cacdfaad6fa960b39e0c917f43af2d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 28 Jan 2004 17:07:22 +0000 Subject: Chunked-transfers should have an additional CRLF after the final 0 CRLF sequence. --- lib/http.c | 4 ++-- lib/transfer.c | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/http.c b/lib/http.c index 0dcaf7866..c3862cded 100644 --- a/lib/http.c +++ b/lib/http.c @@ -1614,8 +1614,8 @@ CURLcode Curl_http(struct connectdata *conn) /* Append the POST data chunky-style */ add_bufferf(req_buffer, "%x\r\n", postsize); add_buffer(req_buffer, data->set.postfields, postsize); - add_buffer(req_buffer, "\r\n0\r\n", 5); /* end of a chunked - transfer stream */ + add_buffer(req_buffer, "\r\n0\r\n\r\n", 7); /* end of a chunked + transfer stream */ } } else { diff --git a/lib/transfer.c b/lib/transfer.c index 3c2bf4baf..eb0c99452 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -152,16 +152,16 @@ static int fillbuffer(struct connectdata *conn, /* copy the prefix to the buffer */ memcpy(conn->upload_fromhere, hexbuffer, hexlen); - if(nread>hexlen) { - /* append CRLF to the data */ - memcpy(conn->upload_fromhere + - nread, "\r\n", 2); - nread+=2; - } - else { + + /* always append CRLF to the data */ + memcpy(conn->upload_fromhere + nread, "\r\n", 2); + + if((nread - hexlen) == 0) { /* mark this as done once this chunk is transfered */ conn->keep.upload_done = TRUE; } + + nread+=2; /* for the added CRLF */ } return nread; } -- cgit v1.2.3