]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules.cpp
Release v3.8.0.
[user/henk/code/inspircd.git] / src / modules.cpp
index 73bd2a5e2dd6988476dc8e1b2e0833afdff9fcc7..27431e3fb5a7100d844bb8520feccdfa5c2a8259 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++)
@@ -397,7 +399,7 @@ void ModuleManager::DoSafeUnload(Module* mod)
        for (user_hash::const_iterator u = users.begin(); u != users.end(); )
        {
                User* user = u->second;
-               // The module may quit the user (e.g. SSL mod unloading) and that will remove it from the container
+               // The module may quit the user (e.g. TLS (SSL) mod unloading) and that will remove it from the container
                ++u;
                mod->OnCleanup(ExtensionItem::EXT_USER, user);
                user->doUnhookExtensions(items);
@@ -622,12 +624,13 @@ ServiceProvider* ModuleManager::FindService(ServiceType type, const std::string&
 
 std::string ModuleManager::ExpandModName(const std::string& modname)
 {
-       // Transform "callerid" -> "m_callerid.so" unless it already has a ".so" extension,
-       // so coremods in the "core_*.so" form aren't changed
-       std::string ret = modname;
-       if ((modname.length() < 3) || (modname.compare(modname.size() - 3, 3, ".so")))
-               ret.insert(0, "m_").append(".so");
-       return ret;
+       std::string fullname;
+       if (modname.compare(0, 5, "core_") != 0 && modname.compare(0, 2, "m_") != 0)
+               fullname.append("m_");
+       fullname.append(modname);
+       if (modname.length() < 3 || modname.compare(modname.size() - 3, 3, ".so") != 0)
+               fullname.append(".so");
+       return fullname;
 }
 
 dynamic_reference_base::dynamic_reference_base(Module* Creator, const std::string& Name)