Everywhere: Make session->verb() callable

This commit is contained in:
Alec Murphy
2025-02-21 11:13:31 -05:00
parent 69a4d6916f
commit 3728d56ea0
5 changed files with 54 additions and 15 deletions

View File

@@ -367,7 +367,7 @@ U0 @slon_admin_http_handle_post_request(SlonHttpSession* session)
U0 @slon_admin_http_handle_request(SlonHttpSession* session)
{
switch (@slon_http_request_verb(session)) {
switch (session->verb()) {
case SLON_HTTP_VERB_GET:
@slon_admin_http_handle_get_request(session);
break;

View File

@@ -182,7 +182,7 @@ U0 @slon_local_http_handle_get_request(SlonHttpSession* session)
U0 @slon_local_http_handle_request(SlonHttpSession* session)
{
switch (@slon_http_request_verb(session)) {
switch (session->verb()) {
case SLON_HTTP_VERB_GET:
@slon_local_http_handle_get_request(session);
break;

View File

@@ -43,6 +43,7 @@ U0 @slon_http_free_session(SlonHttpSession* session)
@slon_http_free_response(session, session->response);
@slon_http_free_request(session, session->request);
I64 bytes_used = session->bytes_used - MSize2(session);
Free(session->verb);
Free(session->header);
Free(session->status);
Free(session->send);
@@ -124,6 +125,19 @@ SlonHttpSession* @slon_http_init_session(TcpSocket* s)
a += 0x4c;
@patch_call_rel32(a, &@slon_http_send);
// Create a copy of function and patch verb
code_size = MSize(&@slon_session_verb_wrapper_function);
session->verb = CAlloc(code_size, adam_task->code_heap);
MemCpy(session->verb, &@slon_session_verb_wrapper_function, code_size);
a = session->verb;
a += 0x11;
MemSetI64(a, session, 1);
a = session->verb;
a += 0x1b;
@patch_call_rel32(a, &@slon_http_request_verb);
return session;
}
@@ -527,7 +541,7 @@ U0 @slon_http_handle_request(SlonHttpSession* session)
// .purge_expired_idempotency_keys()
@slon_http_authorize(session);
switch (@slon_http_request_verb(session)) {
switch (session->verb()) {
case SLON_HTTP_VERB_DELETE:
@slon_http_handle_delete_request(session);
break;