]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_delayjoin.cpp
Wait for the manager bind to come back before sending search in LDAP modules
[user/henk/code/inspircd.git] / src / modules / m_delayjoin.cpp
index 525388a4251a253885510f9ee71d5fe3d6c191f2..e183fbe4600041ae581b938ca627c8455fab3df7 100644 (file)
@@ -44,20 +44,13 @@ class ModuleDelayJoin : public Module
        {
        }
 
-       void init() CXX11_OVERRIDE
-       {
-               ServerInstance->Modules->AddService(djm);
-               ServerInstance->Modules->AddService(unjoined);
-               Implementation eventlist[] = { I_OnUserJoin, I_OnUserPart, I_OnUserKick, I_OnBuildNeighborList, I_OnNamesListItem, I_OnText, I_OnRawMode };
-               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
-       }
        Version GetVersion() CXX11_OVERRIDE;
        void OnNamesListItem(User* issuer, Membership*, std::string &prefixes, std::string &nick) CXX11_OVERRIDE;
        void OnUserJoin(Membership*, bool, bool, CUList&) CXX11_OVERRIDE;
        void CleanUser(User* user);
        void OnUserPart(Membership*, std::string &partmessage, CUList&) CXX11_OVERRIDE;
        void OnUserKick(User* source, Membership*, const std::string &reason, CUList&) CXX11_OVERRIDE;
-       void OnBuildNeighborList(User* source, UserChanList &include, std::map<User*,bool> &exception) CXX11_OVERRIDE;
+       void OnBuildNeighborList(User* source, IncludeChanList& include, std::map<User*, bool>& exception) CXX11_OVERRIDE;
        void OnText(User* user, void* dest, int target_type, const std::string &text, char status, CUList &exempt_list) CXX11_OVERRIDE;
        ModResult OnRawMode(User* user, Channel* channel, const char mode, const std::string &param, bool adding, int pcnt) CXX11_OVERRIDE;
 };
@@ -130,15 +123,15 @@ void ModuleDelayJoin::OnUserKick(User* source, Membership* memb, const std::stri
                populate(except, memb);
 }
 
-void ModuleDelayJoin::OnBuildNeighborList(User* source, UserChanList &include, std::map<User*,bool> &exception)
+void ModuleDelayJoin::OnBuildNeighborList(User* source, IncludeChanList& include, std::map<User*, bool>& exception)
 {
-       UCListIter i = include.begin();
-       while (i != include.end())
+       for (IncludeChanList::iterator i = include.begin(); i != include.end(); )
        {
-               Channel* c = *i++;
-               Membership* memb = c->GetUser(source);
-               if (memb && unjoined.get(memb))
-                       include.erase(c);
+               Membership* memb = *i;
+               if (unjoined.get(memb))
+                       i = include.erase(i);
+               else
+                       ++i;
        }
 }