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 eba5b9a19608cd3cc1c7534fbc20291fe984e795
parent ae1d069c597d057b7b8d706fa0707728929c2d62
Author: Erik Agsjö <erik.agsjo@gmail.com>
Date:   Fri,  3 Dec 2021 14:55:32 +0100

Fix reader/writer setup order

Diffstat:
Msrc/naett_core.c | 29++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/src/naett_core.c b/src/naett_core.c @@ -209,6 +209,19 @@ naettOption* naettBodyWriter(naettWriteFunc writer, void* userData) { return (naettOption*)option; } +void setupDefaultRW(InternalRequest* req) { + if (req->options.bodyReader == NULL) { + req->options.bodyReader = defaultBodyReader; + req->options.bodyReaderData = (void*) &req->options.body; + } + if (req->options.bodyReader == defaultBodyReader) { + req->options.body.position = 0; + } + if (req->options.bodyWriter == NULL) { + req->options.bodyWriter = defaultBodyWriter; + } +} + naettReq* naettRequest_va(const char* url, int numArgs, ...) { va_list args; InternalOption* option; @@ -223,6 +236,8 @@ naettReq* naettRequest_va(const char* url, int numArgs, ...) { } va_end(args); + setupDefaultRW(req); + if (naettPlatformInitRequest(req)) { return (naettReq*)req; } @@ -241,6 +256,8 @@ naettReq* naettRequestWithOptions(const char* url, int numOptions, const naettOp free(option); } + setupDefaultRW(req); + if (naettPlatformInitRequest(req)) { return (naettReq*)req; } @@ -254,17 +271,11 @@ naettRes* naettMake(naettReq* request) { InternalRequest* req = (InternalRequest*)request; naettAlloc(InternalResponse, res); res->request = req; - if (req->options.bodyReader == NULL) { - req->options.bodyReader = defaultBodyReader; - req->options.bodyReaderData = (void*) &req->options.body; - } - if (req->options.bodyReader == defaultBodyReader) { - req->options.body.position = 0; - } - if (req->options.bodyWriter == NULL) { - req->options.bodyWriter = defaultBodyWriter; + + if (req->options.bodyWriter == defaultBodyWriter) { req->options.bodyWriterData = (void*) &res->body; } + naettPlatformMakeRequest(res); return (naettRes*) res; }