X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_dccallow.cpp;h=d92aeed82dfaa24f02a5c9b4b07bf2fa62018077;hb=7f00015727fab50e37de46aa90d218b31c852c87;hp=e662995ae27b25079c9ca97a7f23b16349565cd2;hpb=3a554ef1e9be9dbcf3de3301a4a6c2938d643bea;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index e662995ae..d92aeed82 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -94,7 +94,6 @@ class cmd_dccallow : public command_t if (target) { - ServerInstance->Log(DEBUG, "m_dccallow.so: got target %s and action %c", target->nick, action); if (action == '-') { @@ -267,13 +266,13 @@ class ModuleDCCAllow : public Module List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = List[I_OnUserQuit] = List[I_OnUserPreNick] = List[I_OnRehash] = 1; } - virtual void OnRehash(const std::string ¶meter) + virtual void OnRehash(userrec* user, const std::string ¶meter) { delete Conf; Conf = new ConfigReader(ServerInstance); } - virtual void OnUserQuit(userrec* user, const std::string &reason) + virtual void OnUserQuit(userrec* user, const std::string &reason, const std::string &oper_message) { dccallowlist* dl; @@ -305,8 +304,9 @@ class ModuleDCCAllow : public Module virtual int OnUserPreNotice(userrec* user, void* dest, int target_type, std::string &text, char status, CUList &exempt_list) { - Expire(); - + if (!IS_LOCAL(user)) + return 0; + if (target_type == TYPE_USER) { userrec* u = (userrec*)dest; @@ -317,6 +317,9 @@ class ModuleDCCAllow : public Module if ((text.length()) && (text[0] == '\1')) { + + Expire(); + // :jamie!jamie@test-D4457903BA652E0F.silverdream.org PRIVMSG eimaj :DCC SEND m_dnsbl.cpp 3232235786 52650 9676 // :jamie!jamie@test-D4457903BA652E0F.silverdream.org PRIVMSG eimaj :VERSION @@ -347,7 +350,6 @@ class ModuleDCCAllow : public Module tokens.push_back(buf); irc::string type = tokens[1].c_str(); - ServerInstance->Log(DEBUG, "m_dccallow.so: got DCC type %s", type.c_str()); bool blockchat = Conf->ReadFlag("dccallow", "blockchat", 0); @@ -357,25 +359,19 @@ class ModuleDCCAllow : public Module std::string filename = tokens[2]; if (defaultaction == "allow") - { return 0; - } for (unsigned int i = 0; i < bfl.size(); i++) { if (ServerInstance->MatchText(filename, bfl[i].filemask)) { - if (strcmp(bfl[i].action.c_str(), "allow") == 0) - { + if (bfl[i].action == "allow") return 0; - } } else { if (defaultaction == "allow") - { return 0; - } } user->WriteServ("NOTICE %s :The user %s is not accepting DCC SENDs from you. Your file %s was not sent.", user->nick, u->nick, filename.c_str()); u->WriteServ("NOTICE %s :%s (%s@%s) attempted to send you a file named %s, which was blocked.", u->nick, user->nick, user->ident, user->dhost, filename.c_str()); @@ -424,7 +420,6 @@ class ModuleDCCAllow : public Module else { RemoveFromUserlist(u); - ServerInstance->Log(DEBUG, "m_dccallow.so: UH OH! Couldn't get DCCALLOW list for %s", u->nick); } } } @@ -496,7 +491,7 @@ class ModuleDCCAllow : public Module virtual Version GetVersion() { - return Version(1,1,0,0,VF_COMMON,API_VERSION); + return Version(1,1,0,0,VF_COMMON|VF_VENDOR,API_VERSION); } };