diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index ee164347..48a2fadb 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -93,19 +93,17 @@ int main(int argc, char** argv) { } // setup the chat api web server - bool web_server_enabled = Game::config->GetValue("web_server_enabled") == "1"; const uint32_t web_server_port = GeneralUtils::TryParse(Game::config->GetValue("web_server_port")).value_or(2005); - if (web_server_enabled && !Game::web.Startup("localhost", web_server_port)) { - // if we want the web api and it fails to start, exit + if (Game::config->GetValue("web_server_enabled") == "1" && !Game::web.Startup("localhost", web_server_port)) { + // if we want the web server and it fails to start, exit LOG("Failed to start web server, shutting down."); Database::Destroy("ChatServer"); delete Game::logger; delete Game::config; return EXIT_FAILURE; } - if (web_server_enabled) { - ChatWeb::RegisterRoutes(); - } + + if (Game::web.IsEnabled()) ChatWeb::RegisterRoutes(); //Find out the master's IP: std::string masterIP; @@ -169,10 +167,8 @@ int main(int argc, char** argv) { packet = nullptr; } - //Check and handle web requests: - if (web_server_enabled) { - Game::web.ReceiveRequests(); - } + // Check and handle web requests: + if (Game::web.IsEnabled()) Game::web.ReceiveRequests(); //Push our log every 30s: if (framesSinceLastFlush >= logFlushTime) { diff --git a/dWeb/Web.cpp b/dWeb/Web.cpp index f0ca773c..824bf3a5 100644 --- a/dWeb/Web.cpp +++ b/dWeb/Web.cpp @@ -156,6 +156,7 @@ void HandleWSGetSubscriptions(mg_connection* connection, json data) { } void HandleMessages(mg_connection* connection, int message, void* message_data) { + if (!Game::web.IsEnabled()) return; switch (message) { case MG_EV_HTTP_MSG: HandleHTTPMessage(connection, static_cast(message_data)); @@ -232,7 +233,7 @@ bool Web::Startup(const std::string& listen_ip, const uint32_t listen_port) { .name = "getSubscriptions", .handle = HandleWSGetSubscriptions }); - + enabled = true; return true; } @@ -241,6 +242,8 @@ void Web::ReceiveRequests() { } void Web::SendWSMessage(const std::string subscription, json& data) { + if (!Game::web.enabled) return; + // find subscription auto subItr = std::find(g_WSSubscriptions.begin(), g_WSSubscriptions.end(), subscription); if (subItr == g_WSSubscriptions.end()) { diff --git a/dWeb/Web.h b/dWeb/Web.h index cc6db36d..16f150bf 100644 --- a/dWeb/Web.h +++ b/dWeb/Web.h @@ -49,8 +49,10 @@ public: void RegisterHTTPRoute(HTTPRoute route); void RegisterWSEvent(WSEvent event); void RegisterWSSubscription(const std::string& subscription); + bool IsEnabled() const { return enabled; }; private: mg_mgr mgr; + bool enabled = false; }; #endif // !__WEB_H__