X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_chanfilter.cpp;h=112bcb5c4b7d94b33ae778a0816b142f29f1a609;hb=43fe72edad4c5dfd1a3a700bea17c8ee7a7c3d8e;hp=9f1722b8d97ee7fb9810568965f82fd96e2be590;hpb=0739e7c099618eb1848f5a72ec4d896095033a76;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp index 9f1722b8d..112bcb5c4 100644 --- a/src/modules/m_chanfilter.cpp +++ b/src/modules/m_chanfilter.cpp @@ -36,12 +36,15 @@ class ModuleChanFilter : public Module public: - ModuleChanFilter() + ModuleChanFilter(Server* Me) + : Module::Module(Me) { - Srv = new Server; + Srv = Me; Conf = new ConfigReader; Srv->AddExtendedListMode('g'); MaxEntries = Conf->ReadInteger("chanfilter","maxsize",0,true); + if (MaxEntries == 0) + MaxEntries = 32; } virtual void On005Numeric(std::string &output) @@ -96,7 +99,7 @@ class ModuleChanFilter : public Module { for (SpamList::iterator i = spamlist->begin(); i != spamlist->end(); i++) { - if (strstr(text.c_str(),i->c_str())) + if (strstr(buffer,i->c_str())) { WriteServ(user->fd,"936 %s %s :Your message contained a censored word, and was blocked",user->nick, chan->name); return 1; @@ -200,7 +203,6 @@ class ModuleChanFilter : public Module virtual ~ModuleChanFilter() { delete Conf; - delete Srv; } virtual Version GetVersion() @@ -208,7 +210,7 @@ class ModuleChanFilter : public Module return Version(1,0,0,0,VF_STATIC|VF_VENDOR); } - virtual string_list OnChannelSync(chanrec* chan) + virtual void OnSyncChannel(chanrec* chan, Module* proto, void* opaque) { SpamList* spamlist = (SpamList*)chan->GetExt("spam_list"); string_list commands; @@ -216,10 +218,9 @@ class ModuleChanFilter : public Module { for (SpamList::iterator i = spamlist->begin(); i != spamlist->end(); i++) { - commands.push_back("M "+std::string(chan->name)+" +g "+*i); + proto->ProtoSendMode(opaque,TYPE_CHANNEL,chan,"+g "+*i); } } - return commands; } }; @@ -236,9 +237,9 @@ class ModuleChanFilterFactory : public ModuleFactory { } - virtual Module * CreateModule() + virtual Module * CreateModule(Server* Me) { - return new ModuleChanFilter; + return new ModuleChanFilter(Me); } };