]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules.cpp
Update copyright headers.
[user/henk/code/inspircd.git] / src / modules.cpp
index 36f5409c46786fcd02f2b3d9ef2f7f9f483433e7..77e4142b3b9b569a33e11fc927083749ef101120 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
  *   Copyright (C) 2019 nia <nia@netbsd.org>
  *   Copyright (C) 2019 iwalkalone <iwalkalone69@gmail.com>
  *   Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services>
@@ -131,6 +132,7 @@ void                Module::OnUserInvite(User*, User*, Channel*, time_t, unsigned int, CUList&
 void           Module::OnPostTopicChange(User*, Channel*, const std::string&) { DetachEvent(I_OnPostTopicChange); }
 void           Module::OnDecodeMetaData(Extensible*, const std::string&, const std::string&) { DetachEvent(I_OnDecodeMetaData); }
 void           Module::OnChangeHost(User*, const std::string&) { DetachEvent(I_OnChangeHost); }
+void           Module::OnChangeRealHost(User*, const std::string&) { DetachEvent(I_OnChangeRealHost); }
 void           Module::OnChangeRealName(User*, const std::string&) { DetachEvent(I_OnChangeRealName); }
 void           Module::OnChangeIdent(User*, const std::string&) { DetachEvent(I_OnChangeIdent); }
 void           Module::OnAddLine(User*, XLine*) { DetachEvent(I_OnAddLine); }
@@ -234,7 +236,7 @@ bool ModuleManager::SetPriority(Module* mod, Implementation i, Priority s, Modul
        }
 
        /* Eh? this module doesnt exist, probably trying to set priority on an event
-        * theyre not attached to.
+        * they're not attached to.
         */
        return false;
 
@@ -315,7 +317,7 @@ swap_now:
 bool ModuleManager::PrioritizeHooks()
 {
        /* We give every module a chance to re-prioritize when we introduce a new one,
-        * not just the one thats loading, as the new module could affect the preference
+        * not just the one that's loading, as the new module could affect the preference
         * of others
         */
        for (int tries = 0; tries < 20; tries++)
@@ -477,13 +479,17 @@ void ModuleManager::LoadAll()
        for (ConfigIter i = tags.first; i != tags.second; ++i)
        {
                ConfigTag* tag = i->second;
-               std::string name = ExpandModName(tag->getString("name"));
-               this->NewServices = &servicemap[name];
+
+               const std::string shortname = tag->getString("name");
+               if (shortname.empty())
+                       continue; // Skip malformed module tags.
 
                // Skip modules which are already loaded.
+               const std::string name = ExpandModName(shortname);
                if (Modules.find(name) != Modules.end())
                        continue;
 
+               this->NewServices = &servicemap[name];
                std::cout << "[" << con_green << "*" << con_reset << "] Loading module:\t" << con_green << name << con_reset << std::endl;
                if (!this->Load(name, true))
                {