From 2dace4e0e57df5506a31687b44a48fa94c9f9071 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Sun, 15 Oct 2023 18:57:47 +0200 Subject: Add error checking, local testing, default convar handler --- src/handler.cpp | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'src/handler.cpp') diff --git a/src/handler.cpp b/src/handler.cpp index f82573c..56aea76 100644 --- a/src/handler.cpp +++ b/src/handler.cpp @@ -28,18 +28,25 @@ ServerHandler::ServerHandler(Plugin* plugin): this->init = true; - /* - @TODO + /* execute_squirrel */ this->register_callback( - "list_methods", - [=](rapidjson::Value& params) -> rapidjson::Value + "methods", + [this](rapidjson::MemoryPoolAllocator<>& allocator, rapidjson::Value& params) -> rapidjson::Value { - rapidjson::MemoryPoolAllocator<>& allocator = this->body.GetAllocator(); + rapidjson::Value method_list; + method_list.SetArray(); - return rapidjson::Value(1); + for (auto const& [key, val] : this->methods) + { + rapidjson::Value method_name; + method_name.SetString(key.c_str(), key.size(), allocator); + + method_list.PushBack(method_name, allocator); + } + + return method_list; } ); - */ } @@ -78,12 +85,19 @@ void ServerHandler::run() spdlog::info("Running Handler"); // The engine won't have loaded convar data until after the entry - //Sleep(SLEEP_DURATION); + spdlog::info("Waiting for engine to initialize"); + Sleep(SLEEP_DURATION); - //int port = this->Convar_Port->GetInt(); - int port = 26503; + int port = this->Convar_Port->GetInt(); RPCServer* server = new RPCServer(INADDR_ANY, port); - Sleep(SLEEP_DURATION); + + if (server->get_http_server().get_socket() == -1) + { + spdlog::error("HTTP Server failed to start"); + return; + } + + spdlog::info("Launched server on port {}", port); while (this->running) { -- cgit v1.2.3