fix(elimination_handler): re-write patch
This commit is contained in:
parent
57cfb20b1e
commit
de482bdfd0
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -19,4 +19,4 @@
|
|||||||
[submodule "deps/curl"]
|
[submodule "deps/curl"]
|
||||||
path = deps/curl
|
path = deps/curl
|
||||||
url = https://github.com/curl/curl.git
|
url = https://github.com/curl/curl.git
|
||||||
branch = curl-8_5_0
|
branch = curl-8_7_1
|
@ -57,11 +57,11 @@ void server::run_frame()
|
|||||||
}
|
}
|
||||||
catch (const service::execution_exception& e)
|
catch (const service::execution_exception& e)
|
||||||
{
|
{
|
||||||
console::warn("Execption in service: %s", e.what());
|
console::warn("Exception in service: %s", e.what());
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
console::error("Fatal execption in service: %s", e.what());
|
console::error("Fatal exception in service: %s", e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -84,8 +84,7 @@ void server::handle_command(const network::address& target, const std::string_vi
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
console::log("Handling command (%s): %.*s - %.*s", target.to_string().data(), command.size(), command.data(),
|
console::log("Handling command (%s): %.*s - %.*s", target.to_string().data(), command.size(), command.data(), data.size(), data.data());
|
||||||
data.size(), data.data());
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -94,12 +93,11 @@ void server::handle_command(const network::address& target, const std::string_vi
|
|||||||
}
|
}
|
||||||
catch (const service::execution_exception& e)
|
catch (const service::execution_exception& e)
|
||||||
{
|
{
|
||||||
console::warn("Execption in command %.*s (%s): %s", command.size(), command.data(), target.to_string().data(),
|
console::warn("Exception in command %.*s (%s): %s", command.size(), command.data(), target.to_string().data(),
|
||||||
e.what());
|
e.what());
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
console::error("Fatal execption in command %.*s (%s): %s", command.size(), command.data(),
|
console::error("Fatal exception in command %.*s (%s): %s", command.size(), command.data(), target.to_string().data(), e.what());
|
||||||
target.to_string().data(), e.what());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,11 +3,11 @@
|
|||||||
#include "game_server.hpp"
|
#include "game_server.hpp"
|
||||||
#include "network_list.hpp"
|
#include "network_list.hpp"
|
||||||
|
|
||||||
class server_list : public network_list<game_server, 30>
|
class server_list : public network_list<game_server, 25>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void find_registered_servers(game_type game, int protocol, const access_func& accessor);
|
void find_registered_servers(game_type game, int protocol, const access_func& accessor);
|
||||||
void find_registered_servers(game_type game, int protocol, const const_access_func& accessor) const;
|
void find_registered_servers(game_type game, int protocol, const const_access_func& accessor) const;
|
||||||
|
|
||||||
void heartbeat(const network::address& address);
|
void heartbeat(const network::address& address);
|
||||||
};
|
};
|
@ -7,7 +7,7 @@ constexpr size_t MAX_SERVERS_PER_GAME = 10;
|
|||||||
|
|
||||||
void elimination_handler::run_frame()
|
void elimination_handler::run_frame()
|
||||||
{
|
{
|
||||||
std::unordered_map<game_type, std::unordered_map<network::address, size_t>> server_count;
|
std::unordered_map<game_type, std::unordered_map<std::string, size_t>> server_count;
|
||||||
|
|
||||||
auto now = std::chrono::high_resolution_clock::now();
|
auto now = std::chrono::high_resolution_clock::now();
|
||||||
this->get_server().get_server_list().iterate([&](server_list::iteration_context& context)
|
this->get_server().get_server_list().iterate([&](server_list::iteration_context& context)
|
||||||
@ -29,17 +29,15 @@ void elimination_handler::run_frame()
|
|||||||
if (server.game == game_type::t7 && server.protocol < T7_PROTOCOL)
|
if (server.game == game_type::t7 && server.protocol < T7_PROTOCOL)
|
||||||
{
|
{
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
console::log("Removing T7 server '%s' because they are using an outdated protocol (%i)\n",
|
console::log("Removing T7 server '%s' because they are using an outdated protocol (%i)", context.get_address().to_string().data(), server.protocol);
|
||||||
context.get_address().to_string().data(), server.protocol);
|
|
||||||
#endif
|
#endif
|
||||||
context.remove();
|
context.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
++server_count[server.game][context.get_address()];
|
++server_count[server.game][context.get_address().to_string(false)];
|
||||||
if (server_count[server.game][context.get_address()] >= MAX_SERVERS_PER_GAME)
|
if (server_count[server.game][context.get_address().to_string(false)] >= MAX_SERVERS_PER_GAME)
|
||||||
{
|
{
|
||||||
console::log("Removing server '%s' because it exceeds MAX_SERVERS_PER_GAME\n",
|
console::log("Removing server '%s' because it exceeds MAX_SERVERS_PER_GAME", context.get_address().to_string().data());
|
||||||
context.get_address().to_string().data());
|
|
||||||
context.remove();
|
context.remove();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -55,4 +53,4 @@ void elimination_handler::run_frame()
|
|||||||
context.remove();
|
context.remove();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user