From 7fdd272d7658d858cef582cb336fc3639ee15ffc Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Fri, 7 Aug 2020 21:05:19 +0200 Subject: [PATCH] Fixed the virtual server snapshot port persistance --- server/src/client/ConnectedClientNotifyHandler.cpp | 4 +--- server/src/client/command_handler/misc.cpp | 5 +++-- server/src/snapshots/deploy.cpp | 8 ++++++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/server/src/client/ConnectedClientNotifyHandler.cpp b/server/src/client/ConnectedClientNotifyHandler.cpp index 368ec02..a8180ca 100644 --- a/server/src/client/ConnectedClientNotifyHandler.cpp +++ b/server/src/client/ConnectedClientNotifyHandler.cpp @@ -20,9 +20,7 @@ using namespace ts; using namespace ts::server; using namespace ts::token; -extern ts::server::InstanceHandler* serverInstance; - -#define INVOKER(command, invoker) \ +# define INVOKER(command, invoker) \ do { \ if(invoker) { \ command["invokerid"] = invoker->getClientId(); \ diff --git a/server/src/client/command_handler/misc.cpp b/server/src/client/command_handler/misc.cpp index 99b0559..0315d07 100644 --- a/server/src/client/command_handler/misc.cpp +++ b/server/src/client/command_handler/misc.cpp @@ -714,8 +714,9 @@ command_result ConnectedClient::handleCommandBanAdd(Command &cmd) { return command_result{permission::b_client_ban_create}; } - auto max_ban_time = this->calculate_permission(permission::i_client_ban_max_bantime, this->getClientDatabaseId(), this->getType(), 0); - if(!max_ban_time.has_value) return command_result{permission::i_client_ban_max_bantime}; + auto max_ban_time = this->calculate_permission(permission::i_client_ban_max_bantime, this->getClientDatabaseId()); + if(!max_ban_time.has_value) + return command_result{permission::i_client_ban_max_bantime}; if (!max_ban_time.has_infinite_power()) { if (max_ban_time.value < time) return command_result{permission::i_client_ban_max_bantime}; diff --git a/server/src/snapshots/deploy.cpp b/server/src/snapshots/deploy.cpp index 5295d8b..6ac9517 100644 --- a/server/src/snapshots/deploy.cpp +++ b/server/src/snapshots/deploy.cpp @@ -34,11 +34,13 @@ VirtualServerManager::SnapshotDeployResult VirtualServerManager::deploy_snapshot return SnapshotDeployResult::REACHED_SERVER_ID_LIMIT; } + std::string server_host{server ? server->properties()[property::VIRTUALSERVER_HOST].value() : config::binding::DefaultVoiceHost}; + uint16_t server_port{server ? server->properties()[property::VIRTUALSERVER_PORT].as() : this->next_available_port(server_host)}; this->delete_server_in_db(kSnapshotServerId, false); auto result = sql::command{this->handle->getSql(), "INSERT INTO `servers` (`serverId`, `host`, `port`) VALUES (:sid, :host, :port)"} .value(":sid", kSnapshotServerId) - .value(":host", server ? server->properties()[property::VIRTUALSERVER_HOST].value() : config::binding::DefaultVoiceHost) - .value(":port", server ? server->properties()[property::VIRTUALSERVER_PORT].as() : config::voice::default_voice_port) + .value(":host", server_host) + .value(":port", server_port) .execute(); if(!result) { @@ -63,6 +65,8 @@ VirtualServerManager::SnapshotDeployResult VirtualServerManager::deploy_snapshot if(!server->initialize(true)) { //FIXME error handling } + server->properties()[property::VIRTUALSERVER_HOST] = server_host; + server->properties()[property::VIRTUALSERVER_PORT] = server_port; server->properties()[property::VIRTUALSERVER_ASK_FOR_PRIVILEGEKEY] = false; {