]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_banredirect.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / modules / m_banredirect.cpp
index d82b8473c513e3dfc6e72d3cac9a112143232aaf..9833c720d13e78b71b45f94790db48f6a5c0eca0 100644 (file)
@@ -74,6 +74,9 @@ class BanRedirect : public ModeWatcher
                        if (param.length() >= 2 && param[1] == ':')
                                return true;
 
+                       if (param.find('#') == std::string::npos)
+                               return true;
+
                        ListModeBase* banlm = static_cast<ListModeBase*>(*ban);
                        unsigned int maxbans = banlm->GetLimit(channel);
                        ListModeBase::ModeList* list = banlm->GetList(channel);
@@ -123,6 +126,14 @@ class BanRedirect : public ModeWatcher
                                mask[NICK].swap(mask[IDENT]);
                        }
 
+                       if (!mask[NICK].empty() && mask[IDENT].empty() && mask[HOST].empty())
+                       {
+                               if (mask[NICK].find('.') != std::string::npos || mask[NICK].find(':') != std::string::npos)
+                               {
+                                       mask[NICK].swap(mask[HOST]);
+                               }
+                       }
+
                        for(int i = 0; i < 3; i++)
                        {
                                if(mask[i].empty())