aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/config.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-11-09 20:50:46 +0100
committerGitHub <[email protected]>2023-11-09 20:50:46 +0100
commitc289d408765fe47d54987bd49fcf277f2419104a (patch)
treed76ac1fae0a2413f080c4ecfb0e7f281ed50f271 /src/zenserver/config.cpp
parent0.2.31-pre1 (diff)
downloadzen-c289d408765fe47d54987bd49fcf277f2419104a.tar.xz
zen-c289d408765fe47d54987bd49fcf277f2419104a.zip
option for zenserver - `--http-forceloopback` (#516)
* New option for zenserver - `--http-forceloopback` which forces opening of the server http server using loopback (local) connection (UE-199776) * add fallback to local connection for asio if we get access denied on public port
Diffstat (limited to 'src/zenserver/config.cpp')
-rw-r--r--src/zenserver/config.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/zenserver/config.cpp b/src/zenserver/config.cpp
index 8fe4213cb..08ba6dc95 100644
--- a/src/zenserver/config.cpp
+++ b/src/zenserver/config.cpp
@@ -99,6 +99,10 @@ ValidateOptions(ZenServerOptions& ServerOptions)
throw zen::OptionParseException("Invalid AES initialization vector");
}
}
+ if (ServerOptions.HttpServerConfig.ForceLoopback && ServerOptions.IsDedicated)
+ {
+ throw zen::OptionParseException("Dedicated server can not be used with forced local server address");
+ }
}
UpstreamCachePolicy
@@ -788,6 +792,7 @@ ParseConfigFile(const std::filesystem::path& Path,
LuaOptions.AddOption("network.httpserverclass"sv, ServerOptions.HttpServerConfig.ServerClass, "http"sv);
LuaOptions.AddOption("network.httpserverthreads"sv, ServerOptions.HttpServerConfig.ThreadCount, "http-threads"sv);
LuaOptions.AddOption("network.port"sv, ServerOptions.BasePort, "port"sv);
+ LuaOptions.AddOption("network.forceloopback"sv, ServerOptions.HttpServerConfig.ForceLoopback, "http-forceloopback"sv);
LuaOptions.AddOption("network.httpsys.async.workthreads"sv,
ServerOptions.HttpServerConfig.HttpSys.AsyncWorkThreadCount,
@@ -1031,6 +1036,13 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions)
cxxopts::value<int>(ServerOptions.BasePort)->default_value("8558"),
"<port number>");
+ options.add_option("network",
+ "",
+ "http-forceloopback",
+ "Force using local loopback interface",
+ cxxopts::value<bool>(ServerOptions.HttpServerConfig.ForceLoopback)->default_value("false"),
+ "<http forceloopback>");
+
options.add_option("httpsys",
"",
"httpsys-async-work-threads",