naett.c

Tiny cross-platform HTTP / HTTPS client library in C.
git clone git://git.finwo.net/lib/naett.c
Log | Files | Refs | README | LICENSE

commit b55f3e04cf2c1e404957f41d06fef082c2137718
parent 32783675fcb157360fa57ac54b694eed3b854e85
Author: Erik Agsjö <erik.agsjo@gmail.com>
Date:   Mon, 31 Jul 2023 15:24:48 +0200

Count bytes read in the write callback

Diffstat:
Msrc/naett_linux.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/naett_linux.c b/src/naett_linux.c @@ -48,7 +48,6 @@ static void* curlWorker(void* data) { int bytesRead = read(handleReadFD, newHandle.buf, sizeof(newHandle.buf) - newHandlePos); if (bytesRead > 0) { newHandlePos += bytesRead; - res->totalBytesRead += bytesRead; } if (newHandlePos == sizeof(newHandle.buf)) { curl_multi_add_handle(mc, newHandle.handle); @@ -101,7 +100,9 @@ static size_t readCallback(char* buffer, size_t size, size_t numItems, void* use static size_t writeCallback(char* ptr, size_t size, size_t numItems, void* userData) { InternalResponse* res = (InternalResponse*)userData; InternalRequest* req = res->request; - return req->options.bodyWriter(ptr, size * numItems, req->options.bodyWriterData); + size_t bytesWritten = req->options.bodyWriter(ptr, size * numItems, req->options.bodyWriterData); + req->totalBytesRead += bytesWritten; + return bytesWritten; } #define METHOD(A, B, C) (((A) << 16) | ((B) << 8) | (C))