diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/http_chunks.c | 12 | ||||
-rw-r--r-- | lib/http_chunks.h | 4 |
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 |