From c6f74cfa841fd84e401bca0f2a53cd09d35e410e Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Thu, 20 Feb 2025 08:24:04 -0500 Subject: [PATCH] Everywhere: Make session->send() callable --- Slon/Api/V1/Accounts.HC | 14 +++++++------- Slon/Api/V1/Apps.HC | 2 +- Slon/Api/V1/Blocks.HC | 2 +- Slon/Api/V1/Bookmarks.HC | 2 +- Slon/Api/V1/Conversations.HC | 2 +- Slon/Api/V1/CustomEmojis.HC | 2 +- Slon/Api/V1/Favourites.HC | 2 +- Slon/Api/V1/Filters.HC | 2 +- Slon/Api/V1/FollowRequests.HC | 2 +- Slon/Api/V1/FollowedTags.HC | 2 +- Slon/Api/V1/Notifications.HC | 4 ++-- Slon/Api/V1/Statuses.HC | 6 +++--- Slon/Api/V1/Timelines.HC | 12 ++++++------ Slon/Api/V2/Filters.HC | 2 +- Slon/Api/V2/Instance.HC | 2 +- Slon/Api/V2/Search.HC | 2 +- Slon/Api/V2/Suggestions.HC | 2 +- Slon/Endpoints/Get/Instance.HC | 2 +- Slon/Http/AdminServer.HC | 12 ++++++------ Slon/Http/LocalServer.HC | 4 ++-- Slon/Http/Server.HC | 23 ++++++++++++++++++++++- Slon/Modules/Http.HC | 20 +++++++++++++++++++- Slon/Modules/Meta.HC | 2 +- Slon/Modules/OAuth.HC | 6 +++--- Slon/Modules/Web.HC | 2 +- Slon/Modules/Webfinger.HC | 2 +- 26 files changed, 87 insertions(+), 48 deletions(-) diff --git a/Slon/Api/V1/Accounts.HC b/Slon/Api/V1/Accounts.HC index 25cbb0c..30510f5 100644 --- a/Slon/Api/V1/Accounts.HC +++ b/Slon/Api/V1/Accounts.HC @@ -157,7 +157,7 @@ U0 @slon_api_v1_accounts_post(SlonHttpSession* session) relationship->set("requested", FALSE, JSON_BOOLEAN); relationship->set("domain_blocking", FALSE, JSON_BOOLEAN); relationship->set("endorsed", FALSE, JSON_BOOLEAN); - @slon_http_send_json(session, relationship); + session->send(relationship); goto slon_api_v1_accounts_post_return; } session->status(404); @@ -229,7 +229,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) } } - @slon_http_send_json(session, relationships); + session->send(relationships); Json.Delete(relationships); goto slon_api_v1_accounts_get_return; } else { @@ -240,7 +240,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) SLON_AUTH_ACCOUNT_ID acct = @slon_api_account_by_id(account_id); if (acct) { - @slon_http_send_json(session, acct); + session->send(acct); } else { session->status(404); } @@ -259,7 +259,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) U8* method = path_segments[4]; if (!StrICmp("following", method)) { // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); goto slon_api_v1_accounts_get_return; } if (!StrICmp("statuses", method)) { @@ -329,7 +329,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) } } - @slon_http_send_json(session, statuses); + session->send(statuses); Json.Delete(statuses); goto slon_api_v1_accounts_get_return; @@ -339,7 +339,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) // Return the Account profile JsonObject* profile_object = Json.Clone(acct); profile_object->unset("source"); - @slon_http_send_json(session, profile_object); + session->send(profile_object); Json.Delete(profile_object); } } @@ -487,7 +487,7 @@ U0 @slon_api_v1_accounts_patch(SlonHttpSession* session) @slon_db_save_accounts_to_disk; @slon_db_actors_update_user(acct); - @slon_http_send_json(session, acct); + session->send(acct); } else { session->status(401); } diff --git a/Slon/Api/V1/Apps.HC b/Slon/Api/V1/Apps.HC index da37044..de768e4 100644 --- a/Slon/Api/V1/Apps.HC +++ b/Slon/Api/V1/Apps.HC @@ -65,7 +65,7 @@ U0 @slon_api_v1_apps_post(SlonHttpSession* session) db->o("apps")->set(client_id, credential_app, JSON_OBJECT); @slon_db_save_apps_to_disk; - @slon_http_send_json(session, credential_app); + session->send(credential_app); @slon_free(session, id); @slon_free(session, client_id); diff --git a/Slon/Api/V1/Blocks.HC b/Slon/Api/V1/Blocks.HC index aa651d8..ead0658 100644 --- a/Slon/Api/V1/Blocks.HC +++ b/Slon/Api/V1/Blocks.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_blocks_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/Bookmarks.HC b/Slon/Api/V1/Bookmarks.HC index 2634f3d..a9c1d48 100644 --- a/Slon/Api/V1/Bookmarks.HC +++ b/Slon/Api/V1/Bookmarks.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_bookmarks_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/Conversations.HC b/Slon/Api/V1/Conversations.HC index aade66b..6baf1d4 100644 --- a/Slon/Api/V1/Conversations.HC +++ b/Slon/Api/V1/Conversations.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_conversations_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/CustomEmojis.HC b/Slon/Api/V1/CustomEmojis.HC index 28a63be..0d2c9e0 100644 --- a/Slon/Api/V1/CustomEmojis.HC +++ b/Slon/Api/V1/CustomEmojis.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_custom_emojis_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/Favourites.HC b/Slon/Api/V1/Favourites.HC index 4bed085..ded7690 100644 --- a/Slon/Api/V1/Favourites.HC +++ b/Slon/Api/V1/Favourites.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_favourites_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/Filters.HC b/Slon/Api/V1/Filters.HC index cf7ba42..73daa43 100644 --- a/Slon/Api/V1/Filters.HC +++ b/Slon/Api/V1/Filters.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_filters_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/FollowRequests.HC b/Slon/Api/V1/FollowRequests.HC index 1417f1b..6f07f9f 100644 --- a/Slon/Api/V1/FollowRequests.HC +++ b/Slon/Api/V1/FollowRequests.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_follow_requests_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/FollowedTags.HC b/Slon/Api/V1/FollowedTags.HC index a11d4f3..8ec396a 100644 --- a/Slon/Api/V1/FollowedTags.HC +++ b/Slon/Api/V1/FollowedTags.HC @@ -5,7 +5,7 @@ U0 @slon_api_v1_followed_tags_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V1/Notifications.HC b/Slon/Api/V1/Notifications.HC index 29b049c..f7a43ef 100644 --- a/Slon/Api/V1/Notifications.HC +++ b/Slon/Api/V1/Notifications.HC @@ -6,9 +6,9 @@ U0 @slon_api_v1_notifications_get(SlonHttpSession* session) // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this if (String.EndsWith("policy", @slon_http_request_path(session))) { - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } else { - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } } else { session->status(401); diff --git a/Slon/Api/V1/Statuses.HC b/Slon/Api/V1/Statuses.HC index 96831ed..0e51192 100644 --- a/Slon/Api/V1/Statuses.HC +++ b/Slon/Api/V1/Statuses.HC @@ -8,7 +8,7 @@ U0 @slon_api_v1_statuses_delete(SlonHttpSession* session) JsonArray* statuses = db->o("statuses")->a(account_id); if (!statuses || !statuses->length) { - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); return; } @@ -43,7 +43,7 @@ U0 @slon_api_v1_statuses_delete(SlonHttpSession* session) slon_api_v1_statuses_delete_return: Free(path_segments); @slon_free(session, path); - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } else { session->status(401); } @@ -130,7 +130,7 @@ U0 @slon_api_v1_statuses_post(SlonHttpSession* session) } } - @slon_http_send_json(session, status); + session->send(status); Json.Delete(status_app); Json.Delete(account_object); diff --git a/Slon/Api/V1/Timelines.HC b/Slon/Api/V1/Timelines.HC index 35021fb..33b708a 100644 --- a/Slon/Api/V1/Timelines.HC +++ b/Slon/Api/V1/Timelines.HC @@ -6,7 +6,7 @@ U0 @slon_api_v1_timelines_home(SlonHttpSession* session, U8* account_id) // Return the Account's Home timeline JsonArray* status_array = db->o("timelines")->o("home")->a(account_id); if (!status_array) { - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); return; } @@ -74,7 +74,7 @@ U0 @slon_api_v1_timelines_home(SlonHttpSession* session, U8* account_id) } } - @slon_http_send_json(session, statuses); + session->send(statuses); Json.Delete(statuses); } @@ -94,13 +94,13 @@ U0 @slon_api_v1_timelines_get(SlonHttpSession* session) if (!StrICmp("public", path_segments[3])) { // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); goto slon_api_v1_timelines_get_return; } if (!StrICmp("tag", path_segments[3])) { // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); goto slon_api_v1_timelines_get_return; } @@ -112,13 +112,13 @@ U0 @slon_api_v1_timelines_get(SlonHttpSession* session) if (!StrICmp("link", path_segments[3])) { // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); goto slon_api_v1_timelines_get_return; } if (!StrICmp("list", path_segments[3])) { // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); goto slon_api_v1_timelines_get_return; } diff --git a/Slon/Api/V2/Filters.HC b/Slon/Api/V2/Filters.HC index 588b5b5..1a44058 100644 --- a/Slon/Api/V2/Filters.HC +++ b/Slon/Api/V2/Filters.HC @@ -5,7 +5,7 @@ U0 @slon_api_v2_filters_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Api/V2/Instance.HC b/Slon/Api/V2/Instance.HC index 0ec92ed..6d5f118 100644 --- a/Slon/Api/V2/Instance.HC +++ b/Slon/Api/V2/Instance.HC @@ -5,5 +5,5 @@ U0 @slon_api_v2_instance_get(SlonHttpSession* session) StrPrint(scratch_buffer, "{\"domain\":\"%s\"}", db->o("instance")->@("uri")); @slon_http_set_content_type(session, "application/json; charset=utf-8"); - @slon_http_send_string(session, scratch_buffer); + session->send(scratch_buffer); } diff --git a/Slon/Api/V2/Search.HC b/Slon/Api/V2/Search.HC index bc3e502..6126479 100644 --- a/Slon/Api/V2/Search.HC +++ b/Slon/Api/V2/Search.HC @@ -200,7 +200,7 @@ U0 @slon_api_v2_search_get(SlonHttpSession* session) } slon_api_v2_search_get_return: - @slon_http_send_json(session, results); + session->send(results); Json.Delete(results); } else { session->status(401); diff --git a/Slon/Api/V2/Suggestions.HC b/Slon/Api/V2/Suggestions.HC index 8aab68d..a51da3e 100644 --- a/Slon/Api/V2/Suggestions.HC +++ b/Slon/Api/V2/Suggestions.HC @@ -5,7 +5,7 @@ U0 @slon_api_v2_suggestions_get(SlonHttpSession* session) if (@slon_api_authorized(session)) { // SLON_AUTH_ACCOUNT_ID // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_ARRAY); + session->send(SLON_EMPTY_JSON_ARRAY); } else { session->status(401); } diff --git a/Slon/Endpoints/Get/Instance.HC b/Slon/Endpoints/Get/Instance.HC index 487288b..0974d73 100644 --- a/Slon/Endpoints/Get/Instance.HC +++ b/Slon/Endpoints/Get/Instance.HC @@ -1,5 +1,5 @@ if (!StrICmp("/api/v1/instance", @slon_http_request_path(session))) { - @slon_http_send_json(session, db->o("instance")); + session->send(db->o("instance")); return; } diff --git a/Slon/Http/AdminServer.HC b/Slon/Http/AdminServer.HC index 0cb5b57..7a6f309 100644 --- a/Slon/Http/AdminServer.HC +++ b/Slon/Http/AdminServer.HC @@ -245,7 +245,7 @@ U0 @slon_admin_delete_account(SlonHttpSession* session) } } @slon_db_save_to_disk; - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } U0 @slon_admin_new_account(SlonHttpSession* session) @@ -255,16 +255,16 @@ U0 @slon_admin_new_account(SlonHttpSession* session) if (db->o("actors")->@(request_json->@("username"))) { StrPrint(scratch_buffer, "{\"error\":\"account already exists\"}"); @slon_http_set_content_type(session, "application/json"); - @slon_http_send(session, scratch_buffer, StrLen(scratch_buffer)); + session->send(scratch_buffer, StrLen(scratch_buffer)); } else { @slon_admin_create_account(session); - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } } U0 @slon_admin_manage_accounts(SlonHttpSession* session) { - @slon_http_send_json(session, db->a("accounts")); + session->send(db->a("accounts")); } U0 @slon_admin_info_stats(SlonHttpSession* session) @@ -277,7 +277,7 @@ U0 @slon_admin_info_stats(SlonHttpSession* session) String.Append(scratch_buffer, "}"); @slon_http_set_content_type(session, "application/json"); - @slon_http_send(session, scratch_buffer, StrLen(scratch_buffer)); + session->send(scratch_buffer, StrLen(scratch_buffer)); } U0 @slon_admin_server_get(SlonHttpSession* session) @@ -330,7 +330,7 @@ U0 @slon_admin_setup_instance(SlonHttpSession* session) @slon_db_save_to_disk; db->set("setup", TRUE); - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } U0 @slon_admin_server_post(SlonHttpSession* session) diff --git a/Slon/Http/LocalServer.HC b/Slon/Http/LocalServer.HC index 06ccece..6a1f1df 100644 --- a/Slon/Http/LocalServer.HC +++ b/Slon/Http/LocalServer.HC @@ -107,7 +107,7 @@ U0 @slon_local_server_directory_listing(SlonHttpSession* session, U8* path) String.Append(html, ""); @slon_http_set_content_type(session, "text/html"); - @slon_http_send(session, html, StrLen(html)); + session->send(html, StrLen(html)); @slon_free(session, html); } @@ -115,7 +115,7 @@ U0 @slon_local_server_not_found(SlonHttpSession* session) { session->status(404); @slon_http_set_content_type(session, "text/html"); - @slon_http_send(session, "

404 Not Found

", 22); + session->send("

404 Not Found

", 22); } U0 @slon_local_server_get(SlonHttpSession* session) diff --git a/Slon/Http/Server.HC b/Slon/Http/Server.HC index 0a76689..258dc21 100644 --- a/Slon/Http/Server.HC +++ b/Slon/Http/Server.HC @@ -102,6 +102,27 @@ SlonHttpSession* @slon_http_init_session(TcpSocket* s) a += 0x31; @patch_call_rel32(a, &@slon_http_set_header); + // Create a copy of function and patch send + code_size = MSize(&@slon_session_send_wrapper_function); + session->send = CAlloc(code_size, adam_task->code_heap); + MemCpy(session->send, &@slon_session_send_wrapper_function, code_size); + + a = session->send; + a += 0x16; + MemSetI64(a, session, 1); + + a = session->send; + a += 0x33; + @patch_call_rel32(a, &@slon_http_send_json); + + a = session->send; + a += 0x41; + @patch_call_rel32(a, &@slon_http_send_string); + + a = session->send; + a += 0x4c; + @patch_call_rel32(a, &@slon_http_send); + return session; } @@ -409,7 +430,7 @@ U0 @slon_http_handle_delete_request(SlonHttpSession* session) /* clang-format on */ // FIXME: Implement this - @slon_http_send_json(session, SLON_EMPTY_JSON_OBJECT); + session->send(SLON_EMPTY_JSON_OBJECT); } U0 @slon_http_handle_get_request(SlonHttpSession* session) diff --git a/Slon/Modules/Http.HC b/Slon/Modules/Http.HC index 73e8d0b..90eebd4 100644 --- a/Slon/Modules/Http.HC +++ b/Slon/Modules/Http.HC @@ -64,6 +64,7 @@ class SlonHttpSession { U8* actor_for_key_id; U8* (*header)(U8* key, U8* value = NULL); + U0 (*send)(U64 payload, I64 size = NULL); I64 (*status)(I64 code = NULL); }; @@ -209,7 +210,7 @@ U0 @slon_http_send_file(SlonHttpSession* session, U8* path) return; I64 size = 0; U8* data = FileRead(path, &size); - @slon_http_send(session, data, size); + session->send(data, size); Free(data); } @@ -278,3 +279,20 @@ U8* @slon_session_header_wrapper_function(U8* key, U8* value = NULL) @slon_http_set_header(session, key, value); return value; } + +U0 @slon_session_send_wrapper_function(U64 payload, I64 size = NULL) +{ + SlonHttpSession* session = SLON_WRAPPER_MAGIC_NUMBER; + if (!payload) { + return; + } + if (*payload(U32*) == JSON_SIG) { + @slon_http_send_json(session, payload); + return; + } + if (!size) { + @slon_http_send_string(session, payload); + } else { + @slon_http_send(session, payload, size); + } +} diff --git a/Slon/Modules/Meta.HC b/Slon/Modules/Meta.HC index 84ddce0..d84adf6 100644 --- a/Slon/Modules/Meta.HC +++ b/Slon/Modules/Meta.HC @@ -5,5 +5,5 @@ U0 @slon_host_meta(SlonHttpSession* session) StrPrint(scratch_buffer, "", db->o("instance")->@("uri")); @slon_http_set_content_type(session, "application/xrd+xml; charset=utf-8"); - @slon_http_send_string(session, scratch_buffer); + session->send(scratch_buffer); } diff --git a/Slon/Modules/OAuth.HC b/Slon/Modules/OAuth.HC index 2dc3728..06077f6 100644 --- a/Slon/Modules/OAuth.HC +++ b/Slon/Modules/OAuth.HC @@ -8,7 +8,7 @@ U0 @slon_oauth_well_known(SlonHttpSession* session) StrPrint(scratch_buffer, "{\"issuer\":\"https://%s\",\"authorization_endpoint\":\"https://%s/oauth/authorize\",\"response_types_supported\":[\"code\"],\"app_registration_endpoint\":\"https://%s/api/v1/apps\"}", db->o("instance")->@("uri"), db->o("instance")->@("uri"), db->o("instance")->@("uri")); @slon_http_set_content_type(session, "application/json; charset=utf-8"); - @slon_http_send_string(session, scratch_buffer); + session->send(scratch_buffer); } U0 @slon_oauth_fetch_token(U8* client_id) @@ -132,7 +132,7 @@ U0 @slon_oauth_verify_access_get(SlonHttpSession* session) StrPrint(scratch_buffer, "%s?code=%s", redirect_uri, authorization_code); JsonObject* redirect_uri_object = Json.CreateObject(); redirect_uri_object->set("redirect_uri", scratch_buffer, JSON_STRING); - @slon_http_send_json(session, redirect_uri_object); + session->send(redirect_uri_object); Json.Delete(redirect_uri_object); @slon_free(session, authorization_code); @@ -178,7 +178,7 @@ U0 @slon_oauth_token_post(SlonHttpSession* session) if (!StrCmp(client_id, code_object->@("client_id")) && !StrCmp(client_secret, code_object->@("client_secret"))) { JsonObject* token = db->o("oauth")->o("tokens")->@(access_token); if (token) { - @slon_http_send_json(session, token); + session->send(token); } else { // If the token doesn't exist, Page Expired? session->status(419); diff --git a/Slon/Modules/Web.HC b/Slon/Modules/Web.HC index ad0b8ec..0baea33 100644 --- a/Slon/Modules/Web.HC +++ b/Slon/Modules/Web.HC @@ -26,7 +26,7 @@ U0 @slon_web_user_get(SlonHttpSession* session) String.Append(html_data, user_file_data); String.Append(html_data, ");"); @slon_http_set_content_type(session, "text/html"); - @slon_http_send(session, html_data, StrLen(html_data)); + session->send(html_data, StrLen(html_data)); Free(html_file_data); Free(user_file_data); diff --git a/Slon/Modules/Webfinger.HC b/Slon/Modules/Webfinger.HC index eb95549..9b2a526 100644 --- a/Slon/Modules/Webfinger.HC +++ b/Slon/Modules/Webfinger.HC @@ -28,7 +28,7 @@ U0 @slon_webfinger(SlonHttpSession* session) links->append(Json.CreateItem(link_object, JSON_OBJECT)); webfinger_object->set("links", links, JSON_ARRAY); - @slon_http_send_json(session, webfinger_object); + session->send(webfinger_object); Json.Delete(webfinger_object); } else { session->status(404);