summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordz <dz@e03df62e-2008-0410-955e-edbf42e46eb7>2009-04-02 22:47:01 +0000
committerdz <dz@e03df62e-2008-0410-955e-edbf42e46eb7>2009-04-02 22:47:01 +0000
commit72c6686ed90e8c7b7e38677bbf59fd25613328e8 (patch)
tree53ee63f6c323a010d898291c574be7834f613d26 /src
parent27c1548bcab1fe40922ead9bffbf3753deb32abd (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.cpp8
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;