Mods/Admins/PrivLevels not subject to server idle timeout policy (#5561)

This commit is contained in:
Zach H
2025-02-04 00:20:20 -05:00
committed by GitHub
parent c2292c11a6
commit e599c6bdac

View File

@@ -406,7 +406,11 @@ void Server_ProtocolHandler::pingClockTimeout()
if (timeRunning - lastDataReceived > server->getMaxPlayerInactivityTime())
prepareDestroy();
if (!userInfo || QString::fromStdString(userInfo->privlevel()).toLower() == "none") {
// PrivLevel users, Moderators, and Admins are not subject to the server idle timeout policy
const bool hasPrivLevel = userInfo && QString::fromStdString(userInfo->privlevel()).toLower() != "none";
const bool isModOrAdmin =
userInfo && (userInfo->user_level() & (ServerInfo_User::IsModerator | ServerInfo_User::IsAdmin));
if (!hasPrivLevel && !isModOrAdmin) {
if ((server->getIdleClientTimeout() > 0) && (idleClientWarningSent)) {
if (timeRunning - lastActionReceived > server->getIdleClientTimeout()) {
prepareDestroy();