/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2018, 2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2014, 2016, 2018 Attila Molnar <attilamolnar@hush.com>
*
* 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
CommandInfo cmdinfo;
CommandModules cmdmodules;
CommandMotd cmdmotd;
+ CommandServList cmdservlist;
CommandTime cmdtime;
CommandVersion cmdversion;
Numeric::Numeric numeric004;
, cmdinfo(this)
, cmdmodules(this)
, cmdmotd(this)
+ , cmdservlist(this)
, cmdtime(this)
, cmdversion(this)
, numeric004(RPL_MYINFO)
void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
+ // Process the escape codes in the MOTDs.
+ ConfigFileCache newmotds;
+ for (ServerConfig::ClassVector::const_iterator iter = ServerInstance->Config->Classes.begin(); iter != ServerInstance->Config->Classes.end(); ++iter)
+ {
+ ConfigTag* tag = (*iter)->config;
+ // Don't process the file if it has already been processed.
+ const std::string motd = tag->getString("motd", "motd");
+ if (newmotds.find(motd) != newmotds.end())
+ continue;
+
+ // We can't process the file if it doesn't exist.
+ ConfigFileCache::iterator file = ServerInstance->Config->Files.find(motd);
+ if (file == ServerInstance->Config->Files.end())
+ continue;
+
+ // Process escape codes.
+ newmotds[file->first] = file->second;
+ InspIRCd::ProcessColors(newmotds[file->first]);
+ }
+
+ cmdmotd.motds.swap(newmotds);
+
ConfigTag* tag = ServerInstance->Config->ConfValue("admin");
cmdadmin.AdminName = tag->getString("name");
cmdadmin.AdminEmail = tag->getString("email", "null@example.com");
if (ServerInstance->Config->RawLog)
{
- ClientProtocol::Messages::Privmsg rawlogmsg(ServerInstance->FakeClient, user, "*** Raw I/O logging is enabled on user server. All messages, passwords, and commands are being recorded.");
+ ClientProtocol::Messages::Privmsg rawlogmsg(ServerInstance->FakeClient, user, "*** Raw I/O logging is enabled on this server. All messages, passwords, and commands are being recorded.");
user->Send(ServerInstance->GetRFCEvents().privmsg, rawlogmsg);
}
}
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Provides the ADMIN, COMMANDS, INFO, MODULES, MOTD, TIME and VERSION commands", VF_VENDOR|VF_CORE);
+ return Version("Provides the ADMIN, COMMANDS, INFO, MODULES, MOTD, TIME, SERVLIST, and VERSION commands", VF_VENDOR|VF_CORE);
}
};