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 622b4d340820a604757bf66d6dd4c0a4d38788f2
parent ec312d7722d9094e552f1c07b2a5baf6a2f4f366
Author: Erik Agsjö <erik.agsjo@gmail.com>
Date:   Sun, 14 Nov 2021 20:17:46 +0100

Fix warnings, osx response status code

Diffstat:
Mexample/main.c | 7+++----
Mnaett.c | 22++++++++++++----------
Msrc/naett_core.c | 13+++++++------
Msrc/naett_osx.c | 9+++++----
4 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/example/main.c b/example/main.c @@ -4,9 +4,8 @@ int main(int argc, char** argv) { naettInit(NULL); - - naettReq* req = - naettRequest("https://www.dn.se", naettMethod("GET"), naettHeader("accept", "application/json")); + + naettReq* req = naettRequest("https://www.dn.se", naettMethod("GET"), naettHeader("accept", "application/json")); naettRes* res = naettMake(req); while (!naettComplete(res)) { usleep(100 * 1000); @@ -14,6 +13,6 @@ int main(int argc, char** argv) { int bodyLength = 0; const char* body = naettGetBody(res, &bodyLength); - printf("Got %d bytes of type '%s':\n", bodyLength, naettGetHeader(res, "Content-Type")); + printf("Got a %d, %d bytes of type '%s':\n", naettGetStatus(res), bodyLength, naettGetHeader(res, "Content-Type")); printf("%.100s\n...\n", body); } diff --git a/naett.c b/naett.c @@ -160,7 +160,8 @@ static int defaultBodyReader(void* dest, int bufferSize, void* userData) { bytesToRead = bufferSize; } - memcpy(dest, buffer->data + buffer->position, bytesToRead); + const char* source = ((const char*)buffer->data) + buffer->position; + memcpy(dest, source, bytesToRead); buffer->position += bytesToRead; return bytesToRead; } @@ -312,7 +313,7 @@ naettReq* naettRequest_va(const char* url, int numArgs, ...) { return (naettReq*)req; } - naettFree(req); + naettFree((naettReq*) req); return NULL; } @@ -330,7 +331,7 @@ naettReq* naettRequestWithOptions(const char* url, int numOptions, const naettOp return (naettReq*)req; } - naettFree(req); + naettFree((naettReq*) req); return NULL; } @@ -383,8 +384,8 @@ int naettGetStatus(const naettRes* response) { static void freeKVList(KVLink* node) { while (node != NULL) { - free(node->key); - free(node->value); + free((void*) node->key); + free((void*) node->value); KVLink* next = node->next; free(node); node = next; @@ -402,7 +403,7 @@ void naettFree(naettReq* request) { if (req->options.body.data != NULL) { free(req->options.body.data); } - free(req->url); + free((void*)req->url); free(request); } @@ -517,14 +518,14 @@ int naettPlatformInitRequest(InternalRequest* req) { header = header->next; } - const int bufSize = 10240; - char byteBuffer[bufSize]; + char byteBuffer[10240]; int bytesRead = 0; if (req->options.bodyReader != NULL) { - id bodyData = objc_msgSend_t(id, NSUInteger)(class("NSMutableData"), sel("dataWithCapacity"), bufSize); + id bodyData = objc_msgSend_t(id, NSUInteger)(class("NSMutableData"), sel("dataWithCapacity:"), sizeof(byteBuffer)); + do { - bytesRead = req->options.bodyReader(byteBuffer, bufSize, req->options.bodyReaderData); + bytesRead = req->options.bodyReader(byteBuffer, sizeof(byteBuffer), req->options.bodyReaderData); objc_msgSend_t(void, const void*, NSUInteger)(bodyData, sel("appendBytes:length:"), byteBuffer, bytesRead); } while (bytesRead > 0); @@ -542,6 +543,7 @@ void didReceiveData(id self, SEL _sel, id session, id dataTask, id data) { if (res->headers == NULL) { id response = objc_msgSend_t(id)(dataTask, sel("response")); + res->code = objc_msgSend_t(NSInteger)(response, sel("statusCode")); id allHeaders = objc_msgSend_t(id)(response, sel("allHeaderFields")); NSUInteger headerCount = objc_msgSend_t(NSUInteger)(allHeaders, sel("count")); diff --git a/src/naett_core.c b/src/naett_core.c @@ -68,7 +68,8 @@ static int defaultBodyReader(void* dest, int bufferSize, void* userData) { bytesToRead = bufferSize; } - memcpy(dest, buffer->data + buffer->position, bytesToRead); + const char* source = ((const char*)buffer->data) + buffer->position; + memcpy(dest, source, bytesToRead); buffer->position += bytesToRead; return bytesToRead; } @@ -220,7 +221,7 @@ naettReq* naettRequest_va(const char* url, int numArgs, ...) { return (naettReq*)req; } - naettFree(req); + naettFree((naettReq*) req); return NULL; } @@ -238,7 +239,7 @@ naettReq* naettRequestWithOptions(const char* url, int numOptions, const naettOp return (naettReq*)req; } - naettFree(req); + naettFree((naettReq*) req); return NULL; } @@ -291,8 +292,8 @@ int naettGetStatus(const naettRes* response) { static void freeKVList(KVLink* node) { while (node != NULL) { - free(node->key); - free(node->value); + free((void*) node->key); + free((void*) node->value); KVLink* next = node->next; free(node); node = next; @@ -310,7 +311,7 @@ void naettFree(naettReq* request) { if (req->options.body.data != NULL) { free(req->options.body.data); } - free(req->url); + free((void*)req->url); free(request); } diff --git a/src/naett_osx.c b/src/naett_osx.c @@ -33,14 +33,14 @@ int naettPlatformInitRequest(InternalRequest* req) { header = header->next; } - const int bufSize = 10240; - char byteBuffer[bufSize]; + char byteBuffer[10240]; int bytesRead = 0; if (req->options.bodyReader != NULL) { - id bodyData = objc_msgSend_t(id, NSUInteger)(class("NSMutableData"), sel("dataWithCapacity"), bufSize); + id bodyData = objc_msgSend_t(id, NSUInteger)(class("NSMutableData"), sel("dataWithCapacity:"), sizeof(byteBuffer)); + do { - bytesRead = req->options.bodyReader(byteBuffer, bufSize, req->options.bodyReaderData); + bytesRead = req->options.bodyReader(byteBuffer, sizeof(byteBuffer), req->options.bodyReaderData); objc_msgSend_t(void, const void*, NSUInteger)(bodyData, sel("appendBytes:length:"), byteBuffer, bytesRead); } while (bytesRead > 0); @@ -58,6 +58,7 @@ void didReceiveData(id self, SEL _sel, id session, id dataTask, id data) { if (res->headers == NULL) { id response = objc_msgSend_t(id)(dataTask, sel("response")); + res->code = objc_msgSend_t(NSInteger)(response, sel("statusCode")); id allHeaders = objc_msgSend_t(id)(response, sel("allHeaderFields")); NSUInteger headerCount = objc_msgSend_t(NSUInteger)(allHeaders, sel("count"));