Cleanup more of the networking layer
This commit is contained in:
+10
-33
@@ -3,18 +3,18 @@
|
||||
#include "../dn_base_inc.h"
|
||||
#include "../dn_os_inc.h"
|
||||
|
||||
DN_NETRequestInternal *DN_NET_RequestFromHandle(DN_NETRequest request)
|
||||
DN_NETRequest *DN_NET_RequestFromHandle(DN_NETRequestHandle handle)
|
||||
{
|
||||
DN_NETRequestInternal *ptr = DN_Cast(DN_NETRequestInternal *) request.handle;
|
||||
DN_NETRequestInternal *result = nullptr;
|
||||
if (ptr && ptr->gen == request.gen)
|
||||
DN_NETRequest *ptr = DN_Cast(DN_NETRequest *) handle.handle;
|
||||
DN_NETRequest *result = nullptr;
|
||||
if (ptr && ptr->gen == handle.gen)
|
||||
result = ptr;
|
||||
return result;
|
||||
}
|
||||
|
||||
DN_NETRequest DN_NET_HandleFromRequest(DN_NETRequestInternal *request)
|
||||
DN_NETRequestHandle DN_NET_HandleFromRequest(DN_NETRequest *request)
|
||||
{
|
||||
DN_NETRequest result = {};
|
||||
DN_NETRequestHandle result = {};
|
||||
if (request) {
|
||||
result.handle = DN_Cast(DN_UPtr) request;
|
||||
result.gen = request->gen;
|
||||
@@ -22,30 +22,10 @@ DN_NETRequest DN_NET_HandleFromRequest(DN_NETRequestInternal *request)
|
||||
return result;
|
||||
}
|
||||
|
||||
DN_NETResponse DN_NET_MakeResponseFromFinishedRequest_(DN_NETRequest request, DN_Arena *arena)
|
||||
{
|
||||
DN_NETResponse result = {};
|
||||
DN_NETRequestInternal *request_ptr = DN_Cast(DN_NETRequestInternal *) request.handle;
|
||||
if (request_ptr && request_ptr->gen == request.gen) {
|
||||
DN_NETResponseInternal const *response = &request_ptr->response;
|
||||
|
||||
// NOTE: Construct the response from the request
|
||||
result.request = request;
|
||||
result.state = response->state;
|
||||
result.http_status = response->http_status;
|
||||
result.body = DN_Str8BuilderBuild(&response->body, arena);
|
||||
if (response->error_str8.size)
|
||||
result.error_str8 = DN_Str8FromStr8Arena(arena, response->error_str8);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void DN_NET_EndFinishedRequest_(DN_NETRequestInternal *request)
|
||||
void DN_NET_EndFinishedRequest_(DN_NETRequest *request)
|
||||
{
|
||||
// NOTE: Deallocate the memory used in the request and reset the string builder
|
||||
DN_ArenaPopTo(&request->arena, request->start_response_arena_pos);
|
||||
request->response.body = DN_Str8BuilderFromArena(&request->arena);
|
||||
|
||||
// NOTE: Check that the request is completely detached
|
||||
DN_Assert(request->next == nullptr);
|
||||
}
|
||||
@@ -58,11 +38,10 @@ void DN_NET_BaseInit_(DN_NETCore *net, char *base, DN_U64 base_size)
|
||||
net->completion_sem = DN_OS_SemaphoreInit(0);
|
||||
}
|
||||
|
||||
DN_NETRequest DN_NET_SetupRequest_(DN_NETRequestInternal *request, DN_Str8 url, DN_Str8 method, DN_NETDoHTTPArgs const *args, DN_NETRequestType type)
|
||||
DN_NETRequestHandle DN_NET_SetupRequest_(DN_NETRequest *request, DN_Str8 url, DN_Str8 method, DN_NETDoHTTPArgs const *args, DN_NETRequestType type)
|
||||
{
|
||||
// NOTE: Setup request
|
||||
DN_Assert(request);
|
||||
DN_NETRequest result = {};
|
||||
if (request) {
|
||||
if (!request->arena.curr)
|
||||
request->arena = DN_ArenaFromVMem(DN_Megabytes(1), DN_Kilobytes(1), DN_ArenaFlags_Nil);
|
||||
@@ -87,13 +66,11 @@ DN_NETRequest DN_NET_SetupRequest_(DN_NETRequestInternal *request, DN_Str8 url,
|
||||
}
|
||||
}
|
||||
|
||||
request->response.body = DN_Str8BuilderFromArena(&request->arena);
|
||||
request->completion_sem = DN_OS_SemaphoreInit(0);
|
||||
request->start_response_arena_pos = DN_ArenaPos(&request->arena);
|
||||
|
||||
result.handle = DN_Cast(DN_UPtr) request;
|
||||
result.gen = request->gen;
|
||||
}
|
||||
|
||||
DN_NETRequestHandle result = DN_NET_HandleFromRequest(request);
|
||||
request->response.request = result;
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user