diff options
| author | 2024-07-17 00:06:50 +0100 | |
|---|---|---|
| committer | 2024-07-17 00:06:50 +0100 | |
| commit | 889d521e05f2e922683d48c74eb00290e7a2f548 (patch) | |
| tree | b4c56bd4cdf0881601c7e4d6ff571e491af10bf4 /src/modules/m_spanningtree/idle.cpp | |
| parent | Use std::endian from C++20 in the sha1 module. (diff) | |
Shuffle the modules about a bit.
Diffstat (limited to 'src/modules/m_spanningtree/idle.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/idle.cpp | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/modules/m_spanningtree/idle.cpp b/src/modules/m_spanningtree/idle.cpp deleted file mode 100644 index 838d09045..000000000 --- a/src/modules/m_spanningtree/idle.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * InspIRCd -- Internet Relay Chat Daemon - * - * Copyright (C) 2018-2020, 2022-2023 Sadie Powell <sadie@witchery.services> - * Copyright (C) 2012-2014 Attila Molnar <attilamolnar@hush.com> - * Copyright (C) 2012 Robby <robby@chatbelgie.be> - * Copyright (C) 2009 Uli Schlachter <psychon@znc.in> - * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org> - * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net> - * - * This file is part of InspIRCd. InspIRCd is free software: you can - * redistribute it and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include "inspircd.h" -#include "utils.h" -#include "commands.h" - -CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, Params& params) -{ - /** - * There are two forms of IDLE: request and reply. Requests have one parameter, - * replies have more than one. - * - * If this is a request, 'issuer' did a /whois and its server wants to learn the - * idle time of the user in params[0]. - * - * If this is a reply, params[0] is the user who did the whois and params.back() is - * the number of seconds 'issuer' has been idle. - */ - - auto* target = ServerInstance->Users.FindUUID(params[0], true); - if (!target) - return CmdResult::FAILURE; - - LocalUser* localtarget = IS_LOCAL(target); - if (!localtarget) - { - // Forward to target's server - return CmdResult::SUCCESS; - } - - if (params.size() >= 2) - { - ServerInstance->Parser.CallHandler("WHOIS", params, issuer); - } - else - { - // A server is asking us the idle time of our user - unsigned int idle; - if (localtarget->idle_lastmsg >= ServerInstance->Time()) - // Possible case when our clock ticked backwards - idle = 0; - else - idle = ((unsigned int) (ServerInstance->Time() - localtarget->idle_lastmsg)); - - CmdBuilder reply(target, "IDLE"); - reply.push(issuer->uuid); - reply.push(ConvToStr(target->signon)); - reply.push(ConvToStr(idle)); - reply.Unicast(issuer); - } - - return CmdResult::SUCCESS; -} |
