aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/http_chunks.c12
-rw-r--r--lib/http_chunks.h4
2 files changed, 10 insertions, 6 deletions
diff --git a/lib/http_chunks.c b/lib/http_chunks.c
index 70a48950a..673e8a0fe 100644
--- a/lib/http_chunks.c
+++ b/lib/http_chunks.c
@@ -100,14 +100,17 @@ void Curl_httpchunk_init(struct connectdata *conn)
*/
CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
char *datap,
- ssize_t length,
- ssize_t *wrote)
+ ssize_t datalen,
+ ssize_t *wrotep)
{
CURLcode result=CURLE_OK;
struct Curl_chunker *ch = &conn->proto.http->chunk;
struct Curl_transfer_keeper *k = &conn->keep;
- int piece;
- *wrote = 0; /* nothing yet */
+ size_t piece;
+ size_t length = (size_t)datalen;
+ size_t *wrote = (size_t *)wrotep;
+
+ *wrote = 0; /* nothing's written yet */
while(length) {
switch(ch->state) {
@@ -212,6 +215,7 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
if(result)
return CHUNKE_WRITE_ERROR;
+
*wrote += piece;
ch->datasize -= piece; /* decrease amount left to expect */
diff --git a/lib/http_chunks.h b/lib/http_chunks.h
index 58a3f12a8..26b79de4e 100644
--- a/lib/http_chunks.h
+++ b/lib/http_chunks.h
@@ -81,8 +81,8 @@ struct Curl_chunker {
char hexbuffer[ MAXNUM_SIZE + 1];
int hexindex;
ChunkyState state;
- ssize_t datasize;
- ssize_t dataleft; /* untouched data amount at the end of the last buffer */
+ size_t datasize;
+ size_t dataleft; /* untouched data amount at the end of the last buffer */
};
#endif