]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_info/core_info.cpp
Redo OnSetEndPoint logic to fix duplicate clones (#1549).
[user/henk/code/inspircd.git] / src / coremods / core_info / core_info.cpp
index 2d7a89475e6976a6e0763b686d9586623fba1272..2b56e5e517dfb027675cfd46bff66d8c9019a973 100644 (file)
@@ -99,6 +99,28 @@ class CoreModInfo : public Module
 
        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");
@@ -130,7 +152,7 @@ class CoreModInfo : public Module
 
                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);
                }
        }