From e0da430c424192c24f5089ceb97f37062349e9ef Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Thu, 14 Sep 2023 03:54:57 -0400 Subject: http and httpsys config options (#401) * Added `--http-threads`, `--httpsys-async-work-threads`, `--httpsys-enable-request-logging` and `--httpsys-enable-async-response` command line options to zenserver * remove unused CreateHttpSysServer --- src/zenhttp/httpserver.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/zenhttp/httpserver.cpp') diff --git a/src/zenhttp/httpserver.cpp b/src/zenhttp/httpserver.cpp index 5312e80a2..a98a3c9bb 100644 --- a/src/zenhttp/httpserver.cpp +++ b/src/zenhttp/httpserver.cpp @@ -714,11 +714,8 @@ enum class HttpServerClass kHttpNull }; -// Implemented in httpsys.cpp -Ref CreateHttpSysServer(int Concurrency, int BackgroundWorkerThreads); - Ref -CreateHttpServer(std::string_view ServerClass) +CreateHttpServer(const HttpServerConfig& Config) { using namespace std::literals; @@ -730,15 +727,15 @@ CreateHttpServer(std::string_view ServerClass) Class = HttpServerClass::kHttpAsio; #endif - if (ServerClass == "asio"sv) + if (Config.ServerClass == "asio"sv) { Class = HttpServerClass::kHttpAsio; } - else if (ServerClass == "httpsys"sv) + else if (Config.ServerClass == "httpsys"sv) { Class = HttpServerClass::kHttpSys; } - else if (ServerClass == "null"sv) + else if (Config.ServerClass == "null"sv) { Class = HttpServerClass::kHttpNull; } @@ -748,12 +745,15 @@ CreateHttpServer(std::string_view ServerClass) default: case HttpServerClass::kHttpAsio: ZEN_INFO("using asio HTTP server implementation"); - return Ref(new HttpAsioServer()); + return Ref(new HttpAsioServer(Config.ThreadCount)); #if ZEN_WITH_HTTPSYS case HttpServerClass::kHttpSys: ZEN_INFO("using http.sys server implementation"); - return Ref(new HttpSysServer(std::thread::hardware_concurrency(), /* background worker threads */ 16)); + return Ref(new HttpSysServer({.ThreadCount = Config.ThreadCount, + .AsyncWorkThreadCount = Config.HttpSys.AsyncWorkThreadCount, + .IsAsyncResponseEnabled = Config.HttpSys.IsAsyncResponseEnabled, + .IsRequestLoggingEnabled = Config.HttpSys.IsRequestLoggingEnabled})); #endif case HttpServerClass::kHttpNull: -- cgit v1.2.3