diff --git a/server/src/client/ConnectedClient.cpp b/server/src/client/ConnectedClient.cpp index 4d5ef7a..1a404ee 100644 --- a/server/src/client/ConnectedClient.cpp +++ b/server/src/client/ConnectedClient.cpp @@ -565,6 +565,11 @@ bool ConnectedClient::notifyClientNeededPermissions() { cmd[index++]["permvalue"] = 0; } + if(index == 0) { + cmd[index]["permid"] = permission::i_client_talk_power; + cmd[index++]["permvalue"] = 0; + } + this->sendCommand(cmd); return true; } diff --git a/server/src/client/query/QueryClientCommands.cpp b/server/src/client/query/QueryClientCommands.cpp index b83899c..c1e4589 100644 --- a/server/src/client/query/QueryClientCommands.cpp +++ b/server/src/client/query/QueryClientCommands.cpp @@ -303,7 +303,7 @@ command_result QueryClient::handleCommandServerSelect(Command &cmd) { target = serverInstance->getVoiceServerManager()->findServerById(static_cast(stol(parm))); if(!target && (!cmd[0].has("0") && (!cmd[0].has("sid") || !cmd["sid"] == 0))) return command_result{error::server_invalid_id, "Invalid server id"}; - if(target && target->getState() != ServerState::ONLINE) return command_result{error::server_is_not_running}; + if(target && target->getState() != ServerState::ONLINE && target->getState() != ServerState::OFFLINE) return command_result{error::server_is_not_running}; if(target == this->server) return command_result{error::ok}; if(target) { diff --git a/server/src/lincense/LicenseService.cpp b/server/src/lincense/LicenseService.cpp index 3028547..d4849b5 100644 --- a/server/src/lincense/LicenseService.cpp +++ b/server/src/lincense/LicenseService.cpp @@ -160,6 +160,7 @@ void LicenseService::execute_dns_request() { } void LicenseService::handle_check_succeeded() { + this->timings.last_succeeded = std::chrono::system_clock::now(); { std::lock_guard rlock{this->request_lock}; this->abort_request(rlock, strobf("request succeeded").string());