]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/u_listmode.h
Fixes
[user/henk/code/inspircd.git] / include / u_listmode.h
index b6cac9c5006e72eab3530a0563794f9172d967ce..145957c776ee80f00e2e87e5fe6cb37c41ca19ad 100644 (file)
@@ -12,6 +12,7 @@
 
 /* $ModDesc: Provides support for easily creating listmodes, stores the time set, the user, and a parameter. */
 
+/* Updated to use the <banlist> config tag if it exists */
 /* Written by Om <omster@gmail.com>, December 2005. */
 /* Based on code previously written by Om - April 2005 */
 /* Originally based on m_chanprotect and m_silence */
@@ -38,14 +39,13 @@ public:
        unsigned int limit;
 };
 
-// Just defining the type we use for the excpetion list here...
+// Just defining the type we use for the exception list here...
 typedef std::vector<ListItem> modelist;
 typedef std::vector<ListLimit> limitlist;
 
 class ListModeBaseModule : public Module
 {
 protected:
-       int maxlist;
        char mode;
        std::string infokey;
        std::string listnumeric;
@@ -147,12 +147,15 @@ public:
                                        }
                                }
                                
+                               unsigned int maxsize = 0;
+                               
                                for(limitlist::iterator it = chanlimits.begin(); it != chanlimits.end(); it++)
                                {
                                        if(Srv->MatchText(chan->name, it->mask))
                                        {
                                                // We have a pattern matching the channel...
-                                               if(el->size() < it->limit)
+                                               maxsize = el->size();
+                                               if(maxsize < it->limit)
                                                {
                                                        // And now add the mask onto the list...
                                                        ListItem e;
@@ -169,7 +172,7 @@ public:
 
                                // List is full
                                WriteServ(user->fd, "478 %s %s %s :Channel ban/ignore list is full", user->nick, chan->name, params[0].c_str());
-                               log(DEBUG, "m_exceptionbase.so: %s tried to set mask %s on %s but the list is full (max %d)", user->nick, params[0].c_str(), chan->name, maxlist);
+                               log(DEBUG, "m_exceptionbase.so: %s tried to set mask %s on %s but the list is full (max %d)", user->nick, params[0].c_str(), chan->name, maxsize);
                                return -1;
                        }
                        else