Fixed the virtual server snapshot port persistance

This commit is contained in:
WolverinDEV 2020-08-07 21:05:19 +02:00
parent d5ce71b769
commit 7fdd272d76
3 changed files with 10 additions and 7 deletions

View File

@ -20,9 +20,7 @@ using namespace ts;
using namespace ts::server; using namespace ts::server;
using namespace ts::token; using namespace ts::token;
extern ts::server::InstanceHandler* serverInstance; # define INVOKER(command, invoker) \
#define INVOKER(command, invoker) \
do { \ do { \
if(invoker) { \ if(invoker) { \
command["invokerid"] = invoker->getClientId(); \ command["invokerid"] = invoker->getClientId(); \

View File

@ -714,8 +714,9 @@ command_result ConnectedClient::handleCommandBanAdd(Command &cmd) {
return command_result{permission::b_client_ban_create}; 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); 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_value)
return command_result{permission::i_client_ban_max_bantime};
if (!max_ban_time.has_infinite_power()) { if (!max_ban_time.has_infinite_power()) {
if (max_ban_time.value < time) if (max_ban_time.value < time)
return command_result{permission::i_client_ban_max_bantime}; return command_result{permission::i_client_ban_max_bantime};

View File

@ -34,11 +34,13 @@ VirtualServerManager::SnapshotDeployResult VirtualServerManager::deploy_snapshot
return SnapshotDeployResult::REACHED_SERVER_ID_LIMIT; 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<uint16_t>() : this->next_available_port(server_host)};
this->delete_server_in_db(kSnapshotServerId, false); this->delete_server_in_db(kSnapshotServerId, false);
auto result = sql::command{this->handle->getSql(), "INSERT INTO `servers` (`serverId`, `host`, `port`) VALUES (:sid, :host, :port)"} auto result = sql::command{this->handle->getSql(), "INSERT INTO `servers` (`serverId`, `host`, `port`) VALUES (:sid, :host, :port)"}
.value(":sid", kSnapshotServerId) .value(":sid", kSnapshotServerId)
.value(":host", server ? server->properties()[property::VIRTUALSERVER_HOST].value() : config::binding::DefaultVoiceHost) .value(":host", server_host)
.value(":port", server ? server->properties()[property::VIRTUALSERVER_PORT].as<uint16_t>() : config::voice::default_voice_port) .value(":port", server_port)
.execute(); .execute();
if(!result) { if(!result) {
@ -63,6 +65,8 @@ VirtualServerManager::SnapshotDeployResult VirtualServerManager::deploy_snapshot
if(!server->initialize(true)) { if(!server->initialize(true)) {
//FIXME error handling //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; server->properties()[property::VIRTUALSERVER_ASK_FOR_PRIVILEGEKEY] = false;
{ {