]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_dccallow.cpp
m_spanningtree SVSNICK needs 3 parameters
[user/henk/code/inspircd.git] / src / modules / m_dccallow.cpp
index 0c1c5a18501854338c5cf717fa7ccb724dd491b6..10b1b98ac7ad6fa9c26b2bbf25958b796538ceed 100644 (file)
@@ -102,7 +102,7 @@ class CommandDccallow : public Command
                        std::string nick = parameters[0].substr(1);
                        User *target = ServerInstance->FindNickOnly(nick);
 
-                       if (target)
+                       if ((target) && (!IS_SERVER(target)) && (!target->quitting) && (target->registered == REG_ALL))
                        {
 
                                if (action == '-')
@@ -149,7 +149,7 @@ class CommandDccallow : public Command
                                                }
                                        }
 
-                                       std::string mask = std::string(target->nick)+"!"+std::string(target->ident)+"@"+std::string(target->dhost);
+                                       std::string mask = target->nick+"!"+target->ident+"@"+target->dhost;
                                        ConfigReader Conf;
                                        std::string default_length = Conf.ReadValue("dccallow", "length", 0);
 
@@ -257,7 +257,7 @@ class ModuleDCCAllow : public Module
                ServerInstance->Extensions.Register(ext);
                ServerInstance->AddCommand(&cmd);
                ReadFileConf();
-               Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserQuit, I_OnUserPreNick, I_OnRehash };
+               Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserQuit, I_OnUserPostNick, I_OnRehash };
                ServerInstance->Modules->Attach(eventlist, this, 5);
        }
 
@@ -284,10 +284,9 @@ class ModuleDCCAllow : public Module
                RemoveNick(user);
        }
 
-       virtual ModResult OnUserPreNick(User* user, const std::string &newnick)
+       virtual void OnUserPostNick(User* user, const std::string &oldnick)
        {
                RemoveNick(user);
-               return MOD_RES_PASSTHRU;
        }
 
        virtual ModResult OnUserPreMessage(User* user, void* dest, int target_type, std::string &text, char status, CUList &exempt_list)