]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_filter.cpp
Fix iteration of oper blocks by SSLINFO
[user/henk/code/inspircd.git] / src / modules / m_filter.cpp
index bc701878b6703f85e4e73fe5b1893e5303d26bc5..35aca62620ecfd7f41b65536518c2fdde3fa8380 100644 (file)
@@ -139,7 +139,7 @@ class ModuleFilter : public Module
        std::vector<std::string> exemptfromfilter; // List of channel names excluded from filtering.
 
        ModuleFilter();
-
+       void init();
        ~ModuleFilter();
        ModResult OnUserPreMessage(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list);
        FilterResult* FilterMatch(User* user, const std::string &text, int flags);
@@ -254,6 +254,10 @@ bool ModuleFilter::AppliesToMe(User* user, FilterResult* filter, int iflags)
 }
 
 ModuleFilter::ModuleFilter() : filtcommand(this), RegexEngine(this, "regex")
+{
+}
+
+void ModuleFilter::init()
 {
        ServerInstance->AddCommand(&filtcommand);
        Implementation eventlist[] = { I_OnPreCommand, I_OnStats, I_OnSyncNetwork, I_OnDecodeMetaData, I_OnUserPreMessage, I_OnUserPreNotice, I_OnRehash };
@@ -437,6 +441,8 @@ void ModuleFilter::OnRehash(User* user)
                }
        }
        std::string newrxengine = "regex/" + MyConf.ReadValue("filteropts", "engine", 0);
+       if (newrxengine == "regex/")
+               newrxengine = "regex";
        if (RegexEngine.GetProvider() == newrxengine)
                return;
 
@@ -446,14 +452,14 @@ void ModuleFilter::OnRehash(User* user)
        RegexEngine.SetProvider(newrxengine);
        if (!RegexEngine)
        {
-               ServerInstance->SNO->WriteGlobalSno('a', "WARNING: Regex engine '%s' is not loaded - Filter functionality disabled until this is corrected.", RegexEngine.GetProvider().c_str());
+               ServerInstance->SNO->WriteGlobalSno('a', "WARNING: Regex engine '%s' is not loaded - Filter functionality disabled until this is corrected.", newrxengine.c_str());
        }
        ReadFilters(MyConf);
 }
 
 Version ModuleFilter::GetVersion()
 {
-       return Version("Text (spam) filtering", VF_VENDOR | VF_COMMON, RegexEngine.GetProvider());
+       return Version("Text (spam) filtering", VF_VENDOR | VF_COMMON, RegexEngine ? RegexEngine->name : "");
 }