diff options
author | Adam <Adam@anope.org> | 2013-05-28 22:17:22 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-05-28 22:17:22 -0400 |
commit | 06bad31b18d0e339b722dd3ce687005dd23cdb19 (patch) | |
tree | 7398b997fd0922a2bd0fba15eab882ab257dfbdd /src/channels.cpp | |
parent | 576aaff3da727c1a929c28ff0fab064eba4826e4 (diff) |
Fix Channel::SetCorrectModes to never remove modes <= voice (currently secureops enforces everything, inclurding voice)
Diffstat (limited to 'src/channels.cpp')
-rw-r--r-- | src/channels.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 8e391699e..0a2f73ce1 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -856,7 +856,13 @@ void Channel::SetCorrectModes(User *user, bool give_modes) given = true; } else if (take_modes && !has_priv) - this->RemoveMode(NULL, cm, user->GetUID()); + { + /* Only remove modes if they are > voice */ + if (cm->name == "VOICE") + take_modes = false; + else + this->RemoveMode(NULL, cm, user->GetUID()); + } } // Check mlock |