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:
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;
}