expand proxy options, catch invalid commands from server

This commit is contained in:
Martin Michelsen
2022-09-29 23:47:44 -07:00
parent 95220bfbdc
commit 96caa94d1e
4 changed files with 445 additions and 1713 deletions
+12 -6
View File
@@ -200,12 +200,18 @@ static void server_command_dbgid(shared_ptr<ServerState>, shared_ptr<Lobby>,
static void server_command_proxygc(shared_ptr<ServerState>, shared_ptr<Lobby>,
shared_ptr<Client> c, const std::u16string& args) {
uint32_t proxy_remote_guild_card_number = stoll(encode_sjis(args), nullptr, 0);
client_options_cache.replace(
string_printf("proxy_remote_guild_card_number:%" PRIX32, c->license->serial_number),
string_printf("%08" PRIu32, proxy_remote_guild_card_number));
send_text_message_printf(c, "Proxy remote Guild\nCard number set to\n$C6%" PRIu32,
proxy_remote_guild_card_number);
if (args.empty()) {
client_options_cache.delete_key(
string_printf("proxy_remote_guild_card_number:%" PRIX32, c->license->serial_number));
send_text_message(c, u"Proxy remote Guild\nCard number cleared");
} else {
uint32_t proxy_remote_guild_card_number = stoll(encode_sjis(args), nullptr, 0);
client_options_cache.replace(
string_printf("proxy_remote_guild_card_number:%" PRIX32, c->license->serial_number),
string_printf("%08" PRIu32, proxy_remote_guild_card_number));
send_text_message_printf(c, "Proxy remote Guild\nCard number set to\n$C6%" PRIu32,
proxy_remote_guild_card_number);
}
}
static void proxy_command_proxygc(shared_ptr<ServerState>,
+425 -1707
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -663,6 +663,12 @@ void ProxyServer::LinkedSession::on_error(Channel& ch, short events) {
}
}
void ProxyServer::LinkedSession::clear_lobby_players(size_t num_slots) {
this->lobby_players.clear();
this->lobby_players.resize(num_slots);
this->log.info("Cleared lobby players");
}
void ProxyServer::LinkedSession::send_to_game_server(const char* error_message) {
// Delete all the other players
for (size_t x = 0; x < this->lobby_players.size(); x++) {
+2
View File
@@ -147,6 +147,8 @@ public:
static void on_error(Channel& ch, short events);
void on_timeout();
void clear_lobby_players(size_t num_slots);
void send_to_game_server(const char* error_message = nullptr);
void disconnect();