#include "users.h"
#include "channels.h"
#include "modules.h"
-#include "helperfuncs.h"
+
#include "inspircd.h"
/* $ModDesc: An enhanced version of the unreal m_filter.so used by chatspike.net */
-extern InspIRCd* ServerInstance;
+
class Filter : public classbase
{
class ModuleFilter : public Module
{
- Server *Srv;
+
filter_t filters;
public:
- ModuleFilter(Server* Me)
+ ModuleFilter(InspIRCd* Me)
: Module::Module(Me)
{
// read the configuration file on startup.
// main config file, then append your <keyword> tags to the bottom
// of the main config... but rather messy. That's why the capability
// of using a seperate config file is provided.
- Srv = Me;
+
OnRehash("");
}
std::string text2 = text+" ";
for (filter_t::iterator index = filters.begin(); index != filters.end(); index++)
{
- if ((Srv->MatchText(text2,index->first)) || (Srv->MatchText(text,index->first)))
+ if ((ServerInstance->MatchText(text2,index->first)) || (ServerInstance->MatchText(text,index->first)))
{
Filter* f = (Filter*)index->second;
std::string target = "";
ServerInstance->WriteOpers(std::string("FILTER: ")+user->nick+" had their notice filtered, target was "+target+": "+f->reason);
user->WriteServ("NOTICE "+std::string(user->nick)+" :Your notice has been filtered and opers notified: "+f->reason);
}
- Srv->Log(DEFAULT,std::string("FILTER: ")+std::string(user->nick)+
- std::string(" had their notice filtered, target was ")+
- target+": "+f->reason+" Action: "+f->action);
+ ServerInstance->Log(DEFAULT,"FILTER: "+std::string(user->nick)+std::string(" had their notice filtered, target was ")+target+": "+f->reason+" Action: "+f->action);
if (f->action == "kill")
{
{
// 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;
+ 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(filterfile);
+ ConfigReader* MyConf = new ConfigReader(ServerInstance, filterfile);
if ((filterfile == "") || (!MyConf->Verify()))
{
// bail if the user forgot to create a config file
x->action = do_action;
filters[pattern] = x;
}
- Srv->Log(DEFAULT,std::string("m_filter: read configuration from ")+filterfile);
+ ServerInstance->Log(DEFAULT,"m_filter: read configuration from "+filterfile);
DELETE(Conf);
DELETE(MyConf);
}
{
}
- virtual Module * CreateModule(Server* Me)
+ virtual Module * CreateModule(InspIRCd* Me)
{
return new ModuleFilter(Me);
}