]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
Merge pull request #173 from Robby-/insp20-moddesc
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index c202a97b43f9c9878d74f65e45adf3e59fec0b06..8c2a5f73e3e3e68c1167b33960631d39c8c8a83c 100644 (file)
@@ -1,30 +1,40 @@
-/*       +------------------------------------+
- *       | Inspire Internet Relay Chat Daemon |
- *       +------------------------------------+
+/*
+ * InspIRCd -- Internet Relay Chat Daemon
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://wiki.inspircd.org/Credits
+ *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
+ *   Copyright (C) 2008 John Brooks <john.brooks@dereferenced.net>
+ *   Copyright (C) 2008 Pippijn van Steenhoven <pip88nl@gmail.com>
+ *   Copyright (C) 2006-2008 Craig Edwards <craigedwards@brainbox.cc>
+ *   Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ *   Copyright (C) 2006 Jamie ??? <???@???>
  *
- * This program is free but copyrighted software; see
- *            the file COPYING for details.
+ * This file is part of InspIRCd.  InspIRCd is free software: you can
+ * redistribute it and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation, version 2.
  *
- * ---------------------------------------------------
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "inspircd.h"
 
-/* $ModDesc: Povides support for the /DCCALLOW command */
+#include "inspircd.h"
 
-static ConfigReader *Conf;
+/* $ModDesc: Provides support for the /DCCALLOW command */
 
-class BannedFileList : public classbase
+class BannedFileList
 {
  public:
        std::string filemask;
        std::string action;
 };
 
-class DCCAllow : public classbase
+class DCCAllow
 {
  public:
        std::string nickname;
@@ -90,7 +100,7 @@ class CommandDccallow : public Command
                        }
 
                        std::string nick = parameters[0].substr(1);
-                       User *target = ServerInstance->FindNick(nick);
+                       User *target = ServerInstance->FindNickOnly(nick);
 
                        if (target)
                        {
@@ -140,7 +150,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 +253,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 +264,6 @@ class ModuleDCCAllow : public Module
 
        virtual void OnRehash(User* user)
        {
-               delete Conf;
-               Conf = new ConfigReader;
                ReadFileConf();
        }
 
@@ -325,11 +333,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 +458,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,14 +474,12 @@ class ModuleDCCAllow : public Module
 
        virtual ~ModuleDCCAllow()
        {
-               delete Conf;
                delete ext;
-               Conf = NULL;
        }
 
        virtual Version GetVersion()
        {
-               return Version("Povides support for the /DCCALLOW command", VF_COMMON | VF_VENDOR);
+               return Version("Provides support for the /DCCALLOW command", VF_COMMON | VF_VENDOR);
        }
 };