]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
Extbans can be VF_OPTCOMMON as they do not desync on module add/remove
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index c202a97b43f9c9878d74f65e45adf3e59fec0b06..68090a8c3b602309c60ba652a21e34bf25cf6c81 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
 
 /* $ModDesc: Povides support for the /DCCALLOW command */
 
-static ConfigReader *Conf;
-
-class BannedFileList : public classbase
+class BannedFileList
 {
  public:
        std::string filemask;
        std::string action;
 };
 
-class DCCAllow : public classbase
+class DCCAllow
 {
  public:
        std::string nickname;
@@ -140,7 +138,8 @@ class CommandDccallow : public Command
                                        }
 
                                        std::string mask = std::string(target->nick)+"!"+std::string(target->ident)+"@"+std::string(target->dhost);
-                                       std::string default_length = Conf->ReadValue("dccallow", "length", 0);
+                                       ConfigReader Conf;
+                                       std::string default_length = Conf.ReadValue("dccallow", "length", 0);
 
                                        long length;
                                        if (parameters.size() < 2)
@@ -242,7 +241,6 @@ class ModuleDCCAllow : public Module
        ModuleDCCAllow()
                : cmd(this)
        {
-               Conf = new ConfigReader;
                ext = new SimpleExtItem<dccallowlist>("dccallow", this);
                ServerInstance->Extensions.Register(ext);
                ServerInstance->AddCommand(&cmd);
@@ -254,8 +252,6 @@ class ModuleDCCAllow : public Module
 
        virtual void OnRehash(User* user)
        {
-               delete Conf;
-               Conf = new ConfigReader;
                ReadFileConf();
        }
 
@@ -325,11 +321,12 @@ class ModuleDCCAllow : public Module
 
                                        irc::string type = tokens[1].c_str();
 
-                                       bool blockchat = Conf->ReadFlag("dccallow", "blockchat", 0);
+                                       ConfigReader Conf;
+                                       bool blockchat = Conf.ReadFlag("dccallow", "blockchat", 0);
 
                                        if (type == "SEND")
                                        {
-                                               std::string defaultaction = Conf->ReadValue("dccallow", "action", 0);
+                                               std::string defaultaction = Conf.ReadValue("dccallow", "action", 0);
                                                std::string filename = tokens[2];
 
                                                bool found = false;
@@ -449,12 +446,13 @@ class ModuleDCCAllow : public Module
 
        void ReadFileConf()
        {
+               ConfigReader Conf;
                bfl.clear();
-               for (int i = 0; i < Conf->Enumerate("banfile"); i++)
+               for (int i = 0; i < Conf.Enumerate("banfile"); i++)
                {
                        BannedFileList bf;
-                       std::string fileglob = Conf->ReadValue("banfile", "pattern", i);
-                       std::string action = Conf->ReadValue("banfile", "action", i);
+                       std::string fileglob = Conf.ReadValue("banfile", "pattern", i);
+                       std::string action = Conf.ReadValue("banfile", "action", i);
                        bf.filemask = fileglob;
                        bf.action = action;
                        bfl.push_back(bf);
@@ -464,9 +462,7 @@ class ModuleDCCAllow : public Module
 
        virtual ~ModuleDCCAllow()
        {
-               delete Conf;
                delete ext;
-               Conf = NULL;
        }
 
        virtual Version GetVersion()