X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_dccallow.cpp;h=de7b6b7bfbab993e8c0e1c70da7fa8ad27e8d4d5;hb=a45db73920c6a3e51e5a19fe697f86dd185d72b4;hp=0cea96154d4d8d5e1af49a57314d4e6d48d1c373;hpb=74ee9af96639323d852a8b15be72ee9974e0a826;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 0cea96154..de7b6b7bf 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -149,9 +149,8 @@ class CommandDccallow : public Command } } - std::string mask = std::string(target->nick)+"!"+std::string(target->ident)+"@"+std::string(target->dhost); - ConfigReader Conf; - std::string default_length = Conf.ReadValue("dccallow", "length", 0); + std::string mask = target->nick+"!"+target->ident+"@"+target->dhost; + std::string default_length = ServerInstance->Config->ConfValue("dccallow")->getString("length"); long length; if (parameters.size() < 2) @@ -167,7 +166,7 @@ class CommandDccallow : public Command length = ServerInstance->Duration(parameters[1]); } - if (!ServerInstance->IsValidMask(mask.c_str())) + if (!ServerInstance->IsValidMask(mask)) { return CMD_FAILURE; } @@ -252,16 +251,20 @@ class ModuleDCCAllow : public Module ModuleDCCAllow() : cmd(this) + { + ext = NULL; + } + + void init() { ext = new SimpleExtItem("dccallow", this); - ServerInstance->Extensions.Register(ext); - ServerInstance->AddCommand(&cmd); + ServerInstance->Modules->AddService(*ext); + ServerInstance->Modules->AddService(cmd); ReadFileConf(); Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserQuit, I_OnUserPostNick, I_OnRehash }; - ServerInstance->Modules->Attach(eventlist, this, 5); + ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); } - virtual void OnRehash(User* user) { ReadFileConf(); @@ -334,12 +337,12 @@ class ModuleDCCAllow : public Module irc::string type = tokens[1].c_str(); - ConfigReader Conf; - bool blockchat = Conf.ReadFlag("dccallow", "blockchat", 0); + ConfigTag* conftag = ServerInstance->Config->ConfValue("dccallow"); + bool blockchat = conftag->getBool("blockchat"); if (type == "SEND") { - std::string defaultaction = Conf.ReadValue("dccallow", "action", 0); + std::string defaultaction = conftag->getString("action"); std::string filename = tokens[2]; bool found = false; @@ -461,18 +464,15 @@ class ModuleDCCAllow : public Module void ReadFileConf() { - ConfigReader Conf; bfl.clear(); - for (int i = 0; i < Conf.Enumerate("banfile"); i++) + ConfigTagList tags = ServerInstance->Config->ConfTags("banfile"); + for (ConfigIter i = tags.first; i != tags.second; ++i) { BannedFileList bf; - std::string fileglob = Conf.ReadValue("banfile", "pattern", i); - std::string action = Conf.ReadValue("banfile", "action", i); - bf.filemask = fileglob; - bf.action = action; + bf.filemask = i->second->getString("pattern"); + bf.action = i->second->getString("action"); bfl.push_back(bf); } - } virtual ~ModuleDCCAllow()