]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_inviteexception.cpp
Always deny invite to users below halfop status, move OnUserPreInvite up to above...
[user/henk/code/inspircd.git] / src / modules / m_inviteexception.cpp
index dfe796b8bfba1b4cdfd7b4306819bfed30a1dba5..98b1ab55e9a96fee7fe5379a20890bc56ed69bfd 100644 (file)
@@ -34,7 +34,7 @@ class InspIRCd* ServerInstance;
 class InviteException : public ListModeBase
 {
  public:
-       InviteException(InspIRCd* Instance) : ListModeBase(Instance, 'I', "End of Channel Invite Exception List", "346", "347", true) { }
+       InviteException(InspIRCd* Instance) : ListModeBase(Instance, 'I', "End of Channel Invite Exception List", 346, 347, true) { }
 };
 
 class ModuleInviteException : public Module
@@ -52,12 +52,12 @@ public:
                Implementation eventlist[] = { I_OnRequest, I_On005Numeric, I_OnCheckInvite };
                ServerInstance->Modules->Attach(eventlist, this, 3);
        }
-       
+
        virtual void On005Numeric(std::string &output)
        {
                output.append(" INVEX=I");
        }
-        
+
        virtual int OnCheckInvite(User* user, Channel* chan)
        {
                if(chan != NULL)
@@ -66,11 +66,10 @@ public:
                        chan->GetExt(ie->GetInfoKey(), list);
                        if (list)
                        {
-                               char mask[MAXBUF];
-                               snprintf(mask, MAXBUF, "%s!%s@%s", user->nick, user->ident, user->GetIPString());
+                               std::string mask = std::string(user->nick) + "!" + user->ident + "@" + user->GetIPString();
                                for (modelist::iterator it = list->begin(); it != list->end(); it++)
                                {
-                                       if(match(user->GetFullRealHost(), it->mask.c_str()) || match(user->GetFullHost(), it->mask.c_str()) || (match(mask, it->mask.c_str(), true)))
+                                       if(match(user->GetFullRealHost(), it->mask) || match(user->GetFullHost(), it->mask) || (match(mask, it->mask, true)))
                                        {
                                                // They match an entry on the list, so let them in.
                                                return 1;
@@ -80,7 +79,7 @@ public:
                        // or if there wasn't a list, there can't be anyone on it, so we don't need to do anything.
                }
 
-               return 0;               
+               return 0;
        }
 
        virtual const char* OnRequest(Request* request)
@@ -92,11 +91,10 @@ public:
                        LM->chan->GetExt(ie->GetInfoKey(), list);
                        if (list)
                        {
-                               char mask[MAXBUF];
-                               snprintf(mask, MAXBUF, "%s!%s@%s", LM->user->nick, LM->user->ident, LM->user->GetIPString());
+                               std::string mask = std::string(LM->user->nick) + "!" + LM->user->ident + "@" + LM->user->GetIPString();
                                for (modelist::iterator it = list->begin(); it != list->end(); it++)
                                {
-                                       if (match(LM->user->GetFullRealHost(), it->mask.c_str()) || match(LM->user->GetFullHost(), it->mask.c_str()) || (match(mask, it->mask.c_str(), true)))
+                                       if (match(LM->user->GetFullRealHost(), it->mask) || match(LM->user->GetFullHost(), it->mask.c_str()) || (match(mask, it->mask, true)))
                                        {
                                                // They match an entry
                                                return (char*)it->mask.c_str();
@@ -127,7 +125,7 @@ public:
        {
                ie->DoRehash();
        }
-               
+
        virtual Version GetVersion()
        {
                return Version(1, 2, 0, 3, VF_VENDOR | VF_COMMON, API_VERSION);