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:
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))