From 92bb168b4e04cc14034802b3fdf110d01d8d2b58 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Thu, 7 May 2020 21:57:04 +0200 Subject: [PATCH] Fixed server not starting after license expires --- license/server/LicenseServerHandler.cpp | 2 +- license/shared/include/license/license.h | 2 +- server/src/Configuration.cpp | 3 +-- server/src/lincense/LicenseService.cpp | 2 +- server/src/lincense/LicenseService.h | 1 + 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/license/server/LicenseServerHandler.cpp b/license/server/LicenseServerHandler.cpp index 8d6c167..66365ce 100644 --- a/license/server/LicenseServerHandler.cpp +++ b/license/server/LicenseServerHandler.cpp @@ -188,7 +188,7 @@ bool LicenseServer::handleServerValidation(shared_ptr &client, logMessage(LOG_GENERAL, "[CLIENT][{}] Remote license has been deleted! Shutting down server!", client->address()); } else { fill_info(response.mutable_license_info(), info, remote_license->data.licenceKey); - auto is_invalid = !info->isValid(); + auto is_invalid = !info->isNotExpired(); if(is_invalid) { response.set_invalid_reason("license is invalid"); response.set_valid(false); diff --git a/license/shared/include/license/license.h b/license/shared/include/license/license.h index 2368af7..62bd51d 100644 --- a/license/shared/include/license/license.h +++ b/license/shared/include/license/license.h @@ -348,7 +348,7 @@ namespace license { bool deleted{false}; uint32_t upgrade_id{0}; - inline bool isValid() { return (end.time_since_epoch().count() == 0 || std::chrono::system_clock::now() < this->end); } + inline bool isNotExpired() { return (end.time_since_epoch().count() == 0 || std::chrono::system_clock::now() < this->end); } }; extern std::shared_ptr readLocalLicence(const std::string &, std::string &); diff --git a/server/src/Configuration.cpp b/server/src/Configuration.cpp index 65b4d7f..e7c8cde 100644 --- a/server/src/Configuration.cpp +++ b/server/src/Configuration.cpp @@ -482,7 +482,6 @@ vector config::parseConfig(const std::string& path) { goto license_parsing; } - /* if(!config::license->isValid()) { if(config::license->data.type == license::LicenseType::INVALID) { errors.emplace_back(strobf("Give license isn't valid!").string()); @@ -492,9 +491,9 @@ vector config::parseConfig(const std::string& path) { logErrorFmt(true, LOG_GENERAL, strobf("The given license isn't valid!").string()); logErrorFmt(true, LOG_GENERAL, strobf("Falling back to the default license.").string()); teaspeak_license = "none"; + goto license_parsing; } - */ } { diff --git a/server/src/lincense/LicenseService.cpp b/server/src/lincense/LicenseService.cpp index 16cb4d6..7d3777e 100644 --- a/server/src/lincense/LicenseService.cpp +++ b/server/src/lincense/LicenseService.cpp @@ -320,7 +320,7 @@ void LicenseService::send_license_validate_request() { void LicenseService::handle_message_license_info(const void *buffer, size_t buffer_length) { std::lock_guard rlock{this->request_lock}; if(this->request_state_ != request_state::license_validate) { - this->handle_check_fail(strobf("finvalid request state for license response packet").string()); + this->handle_check_fail(strobf("invalid request state for license response packet").string()); return; } diff --git a/server/src/lincense/LicenseService.h b/server/src/lincense/LicenseService.h index a20d213..7e6c827 100644 --- a/server/src/lincense/LicenseService.h +++ b/server/src/lincense/LicenseService.h @@ -15,6 +15,7 @@ namespace google::protobuf { namespace ts::server::license { struct InstanceLicenseInfo { + bool is_old_license{false}; std::shared_ptr<::license::License> license{nullptr}; std::string web_certificate_revision{};