diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-14 17:46:47 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-14 17:46:47 +0000 |
commit | a78cecbeb9c677bdd4b2f44c01195759af63485b (patch) | |
tree | 03b0a71514c6e0dcf6eec78eefe160a2ea7f8b47 /src/modules/m_restrictbanned.cpp | |
parent | 4eb254df411f8dd1694f1b3781c77f702538c59f (diff) |
Refactor userrec::chans.
Old way: A vector of ucrec, MAXCHANS in size by default populated by NULLS, so you have to scan the vector to find an empty slot when joining a user, parting a user etc
New way: std::map<chanrec*, char> (the char holds their basic core permissions on the channel [voice, halfop, op])
This increases speed a ton, and removes some wtf-age.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5986 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_restrictbanned.cpp')
-rw-r--r-- | src/modules/m_restrictbanned.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/modules/m_restrictbanned.cpp b/src/modules/m_restrictbanned.cpp index 51ff39772..c37951eea 100644 --- a/src/modules/m_restrictbanned.cpp +++ b/src/modules/m_restrictbanned.cpp @@ -69,15 +69,10 @@ class ModuleRestrictBanned : public Module return 0; /* bit of a special case. */ - for (std::vector<ucrec*>::iterator i = user->chans.begin(); i != user->chans.end(); i++) + for (UCListIter i = user->chans.begin(); i != user->chans.end(); i++) { - if (((ucrec*)(*i))->channel != NULL) - { - chanrec *channel = ((ucrec*)(*i))->channel; - - if (CheckRestricted(user, channel, "change your nickname") == 1) - return 1; - } + if (CheckRestricted(user, i->first, "change your nickname") == 1) + return 1; } return 0; |