diff options
| author | 2007-08-19 20:14:05 +0000 | |
|---|---|---|
| committer | 2007-08-19 20:14:05 +0000 | |
| commit | cf4439ac5c5e5f57aba2c998ee63b9b27ec17d69 (patch) | |
| tree | 3e95ffda5801a7344c1f9fc47119fe3c3a810496 /src/channels.cpp | |
| parent | Allow changing of an oper's host on oper up using <type:class> (give it a con... (diff) | |
Add <connect:maxchans> as per feature bug #338 - combined with the last feature, this allows per-oper specific maxchans values, and even the same for non-opers!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7761 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/channels.cpp')
| -rw-r--r-- | src/channels.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 6ba5aaa5f..bd8a9719c 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -219,9 +219,9 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo */ if (IS_LOCAL(user) && !override) { - if (IS_OPER(user)) + if (user->GetMaxChans()) { - if (user->chans.size() >= Instance->Config->OperMaxChans) + if (user->chans.size() >= user->GetMaxChans()) { user->WriteServ("405 %s %s :You are on too many channels",user->nick, cn); return NULL; @@ -229,10 +229,21 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo } else { - if (user->chans.size() >= Instance->Config->MaxChans) + if (IS_OPER(user)) { - user->WriteServ("405 %s %s :You are on too many channels",user->nick, cn); - return NULL; + if (user->chans.size() >= Instance->Config->OperMaxChans) + { + user->WriteServ("405 %s %s :You are on too many channels",user->nick, cn); + return NULL; + } + } + else + { + if (user->chans.size() >= Instance->Config->MaxChans) + { + user->WriteServ("405 %s %s :You are on too many channels",user->nick, cn); + return NULL; + } } } } |
