]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
Note where to find the docs.
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index 76658f454291650d561599bcd0080e0c060c8d47..da66d318a295b13080832b823fde86e33213d915 100644 (file)
@@ -82,6 +82,11 @@ class CommandDccallow : public Command
                                        DisplayHelp(user);
                                        return CMD_FAILURE;
                                }
+                               else
+                               {
+                                       user->WriteNumeric(998, "%s :DCCALLOW command not understood. For help on DCCALLOW, type /DCCALLOW HELP", user->nick.c_str());
+                                       return CMD_FAILURE;
+                               }
                        }
 
                        std::string nick = parameters[0].substr(1);
@@ -125,6 +130,12 @@ class CommandDccallow : public Command
                                }
                                else if (action == '+')
                                {
+                                       if (target == user)
+                                       {
+                                               user->WriteNumeric(996, "%s %s :You cannot add yourself to your own DCCALLOW list!", user->nick.c_str(), user->nick.c_str());
+                                               return CMD_FAILURE;
+                                       }
+                                       
                                        if (!user->GetExt("dccallow_list", dl))
                                        {
                                                dl = new dccallowlist;
@@ -132,6 +143,7 @@ class CommandDccallow : public Command
                                                // add this user to the userlist
                                                ul.push_back(user);
                                        }
+                                       
                                        for (dccallowlist::const_iterator k = dl->begin(); k != dl->end(); ++k)
                                        {
                                                if (k->nickname == target->nick)
@@ -139,11 +151,6 @@ class CommandDccallow : public Command
                                                        user->WriteNumeric(996, "%s %s :%s is already on your DCCALLOW list", user->nick.c_str(), user->nick.c_str(), target->nick.c_str());
                                                        return CMD_FAILURE;
                                                }
-                                               else if (ServerInstance->MatchText(user->GetFullHost(), k->hostmask))
-                                               {
-                                                       user->WriteNumeric(996, "%s %s :You cannot add yourself to your own DCCALLOW list!", user->nick.c_str(), user->nick.c_str());
-                                                       return CMD_FAILURE;
-                                               }
                                        }
 
                                        std::string mask = std::string(target->nick)+"!"+std::string(target->ident)+"@"+std::string(target->dhost);
@@ -195,7 +202,7 @@ class CommandDccallow : public Command
 
        void DisplayHelp(User* user)
        {
-               user->WriteNumeric(998, "%s :DCCALLOW [<+|->nick.c_str() [time]] [list] [help]", user->nick.c_str());
+               user->WriteNumeric(998, "%s :DCCALLOW [<+|->nick [time]] [list] [help]", user->nick.c_str());
                user->WriteNumeric(998, "%s :You may allow DCCs from specific users by specifying a", user->nick.c_str());
                user->WriteNumeric(998, "%s :DCC allow for the user you want to receive DCCs from.", user->nick.c_str());
                user->WriteNumeric(998, "%s :For example, to allow the user Brain to send you inspircd.exe", user->nick.c_str());
@@ -312,7 +319,7 @@ class ModuleDCCAllow : public Module
                                        if (u->GetExt("dccallow_list", dl) && dl->size())
                                        {
                                                for (dccallowlist::const_iterator iter = dl->begin(); iter != dl->end(); ++iter)
-                                                       if (ServerInstance->MatchText(user->GetFullHost(), iter->hostmask))
+                                                       if (InspIRCd::Match(user->GetFullHost(), iter->hostmask))
                                                                return 0;
                                        }
 
@@ -338,7 +345,7 @@ class ModuleDCCAllow : public Module
 
                                                for (unsigned int i = 0; i < bfl.size(); i++)
                                                {
-                                                       if (ServerInstance->MatchText(filename, bfl[i].filemask))
+                                                       if (InspIRCd::Match(filename, bfl[i].filemask))
                                                        {
                                                                if (bfl[i].action == "allow")
                                                                        return 0;
@@ -348,11 +355,12 @@ class ModuleDCCAllow : public Module
                                                                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.c_str(), u->nick.c_str(), filename.c_str());
-                                                       u->WriteServ("NOTICE %s :%s (%s@%s) attempted to send you a file named %s, which was blocked.", u->nick.c_str(), user->nick.c_str(), user->ident.c_str(), user->dhost.c_str(), filename.c_str());
-                                                       u->WriteServ("NOTICE %s :If you trust %s and were expecting this, you can type /DCCALLOW HELP for information on the DCCALLOW system.", u->nick.c_str(), user->nick.c_str());
-                                                       return 1;
                                                }
+                                               
+                                               user->WriteServ("NOTICE %s :The user %s is not accepting DCC SENDs from you. Your file %s was not sent.", user->nick.c_str(), u->nick.c_str(), filename.c_str());
+                                               u->WriteServ("NOTICE %s :%s (%s@%s) attempted to send you a file named %s, which was blocked.", u->nick.c_str(), user->nick.c_str(), user->ident.c_str(), user->dhost.c_str(), filename.c_str());
+                                               u->WriteServ("NOTICE %s :If you trust %s and were expecting this, you can type /DCCALLOW HELP for information on the DCCALLOW system.", u->nick.c_str(), user->nick.c_str());
+                                               return 1;
                                        }
                                        else if ((type == "CHAT") && (blockchat))
                                        {
@@ -463,7 +471,7 @@ class ModuleDCCAllow : public Module
 
        virtual Version GetVersion()
        {
-               return Version(1, 2, 0, 0, VF_COMMON | VF_VENDOR, API_VERSION);
+               return Version("$Id$", VF_COMMON | VF_VENDOR, API_VERSION);
        }
 };