diff options
-rw-r--r-- | docs/inspircd.conf.example | 17 | ||||
-rw-r--r-- | src/modules/extra/m_filter_pcre.cpp | 29 | ||||
-rw-r--r-- | src/modules/m_filter.cpp | 25 |
3 files changed, 13 insertions, 58 deletions
diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example index 3945a2ece..6c402c7a0 100644 --- a/docs/inspircd.conf.example +++ b/docs/inspircd.conf.example @@ -465,11 +465,12 @@ #-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-# # # # These options let you define the path to your motd and rules # -# files. These should be absolute paths. # +# files. If these are relative paths, they are relative to the # +# configurtion directory. # # # -<files motd="/home/cc/inspircd/conf/inspircd.motd" - rules="/home/cc/inspircd/conf/inspircd.rules"> +<files motd="inspircd.motd" + rules="inspircd.rules"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # # @@ -515,11 +516,12 @@ # Define the path to the PID file here. The PID file can be used to # # rehash the ircd from the shell or to terminate the ircd from the # # shell using shell scripts, perl scripts etc, and to monitor the # -# ircd's state via cron jobs. This is IMPORTANT and you must define # -# it or the ircd will refuse to start. # +# ircd's state via cron jobs. If this is a relative path, it will be # +# relative to the configuration directory, and if it is not defined, # +# the default of 'inspircd.pid' is used. # # # -<pid file="/path/to/inspircd.pid"> +#<pid file="/path/to/inspircd.pid"> #-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-# # # @@ -998,7 +1000,6 @@ # Optional - If you specify to use the m_filter or m_filter_pcre # # modules, then specfiy below the path to the filter.conf file. # # # -#<filter file="/path/to/inspircd/filter.conf"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Foobar module: does nothing - historical relic @@ -1022,7 +1023,7 @@ # Optional - If you specify to use the m_helpop.so module, then # # specify below the path to the helpop.conf file. # # # -#<helpop file="/path/to/inspircd/helpop.conf"> +#<helpop file="helpop.conf"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Hostchange module: Allows a different style of cloaking diff --git a/src/modules/extra/m_filter_pcre.cpp b/src/modules/extra/m_filter_pcre.cpp index 03cecffb7..96956e3d8 100644 --- a/src/modules/extra/m_filter_pcre.cpp +++ b/src/modules/extra/m_filter_pcre.cpp @@ -26,17 +26,6 @@ #include "modules.h" #include "inspircd.h" -/** Thrown by m_filter_pcre - */ -class FilterPCREException : public ModuleException -{ - public: - virtual const char* GetReason() - { - return "Could not find <filter file=\"\"> definition in your config file!"; - } -}; - /* $ModDesc: m_filter with regexps */ /* $CompileFlags: `pcre-config --cflags` */ /* $LinkerFlags: `pcre-config --libs` `perl extra/pcre_rpath.pl` -lpcre */ @@ -140,25 +129,13 @@ class ModuleFilterPCRE : public Module * of using a seperate config file is provided. */ - ConfigReader Conf(Srv); - - std::string filterfile = Conf.ReadValue("filter", "file", 0); - - ConfigReader MyConf(Srv, filterfile); - - if (filterfile.empty() || !MyConf.Verify()) - { - FilterPCREException e; - throw(e); - } - - ServerInstance->Log(DEFAULT,"m_filter_pcre: read configuration from "+filterfile); + ConfigReader MyConf(Srv); for (std::vector<Filter>::iterator i = filters.begin(); i != filters.end(); i++) pcre_free((*i).regexp); - + filters.clear(); - + for (int index = 0; index < MyConf.Enumerate("keyword"); index++) { std::string pattern = MyConf.ReadValue("keyword","pattern",index); diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index f4193497d..38cd32ecd 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -42,17 +42,6 @@ class Filter : public classbase typedef std::map<std::string,Filter*> filter_t; -/** Thrown by m_filter - */ -class FilterException : public ModuleException -{ - public: - virtual const char* GetReason() - { - return "Could not find <filter file=\"\"> definition in your config file!"; - } -}; - class ModuleFilter : public Module { @@ -127,18 +116,8 @@ class ModuleFilter : public Module virtual void OnRehash(const std::string ¶meter) { - // reload our config file on rehash - we must destroy and re-allocate the classes - // to call the constructor again and re-read our data. - ConfigReader* Conf = new ConfigReader(ServerInstance); - std::string filterfile = Conf->ReadValue("filter","file",0); // this automatically re-reads the configuration file into the class - ConfigReader* MyConf = new ConfigReader(ServerInstance, filterfile); - if ((filterfile == "") || (!MyConf->Verify())) - { - // bail if the user forgot to create a config file - FilterException e; - throw(e); - } + ConfigReader* MyConf = new ConfigReader(ServerInstance); for (filter_t::iterator n = filters.begin(); n != filters.end(); n++) { DELETE(n->second); @@ -156,8 +135,6 @@ class ModuleFilter : public Module x->action = do_action; filters[pattern] = x; } - ServerInstance->Log(DEFAULT,"m_filter: read configuration from "+filterfile); - DELETE(Conf); DELETE(MyConf); } |