diff options
author | dz <dz@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-04-02 22:47:01 +0000 |
---|---|---|
committer | dz <dz@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-04-02 22:47:01 +0000 |
commit | 72c6686ed90e8c7b7e38677bbf59fd25613328e8 (patch) | |
tree | 53ee63f6c323a010d898291c574be7834f613d26 /src | |
parent | 27c1548bcab1fe40922ead9bffbf3753deb32abd (diff) |
Fix up logic in m_allowinvite: extban A prevents /invite in all cases; channel mode A or extban exception A allow /invite in all cases. Fixes bug #819 reported by Taros.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11281 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_allowinvite.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/modules/m_allowinvite.cpp b/src/modules/m_allowinvite.cpp index 8e39ad9c6..4805e1ac6 100644 --- a/src/modules/m_allowinvite.cpp +++ b/src/modules/m_allowinvite.cpp @@ -44,7 +44,13 @@ class ModuleAllowInvite : public Module { if (IS_LOCAL(user)) { - if (channel->IsModeSet('A') && channel->GetExtBanStatus(user, 'A') < 0) + if (channel->GetExtBanStatus(user, 'A') == -1) + { + // Matching extban, explicitly deny /invite + user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s %s :You are banned from using INVITE", user->nick.c_str(), channel->name.c_str()); + return 1; + } + if (channel->IsModeSet('A') || channel->GetExtBanStatus(user, 'A') == 1) { // Explicitly allow /invite return -1; |