diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-01-03 17:25:10 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-01-03 17:25:10 +0000 |
commit | 67b482682e152f8bbec02580a2c3e5d3b1b0b138 (patch) | |
tree | 45c17b48b8b450a638394e3f8255ba3fdcd9638f /src | |
parent | 41bcf2c5a47613a487a500244d331815f8bf4aa7 (diff) |
Remove +o from users on deoper, plausible fix for bug #653 reported by Ankit. Let me know if it's still b0rked, please :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10940 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/users.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/users.cpp b/src/users.cpp index 489028359..b884a4bc1 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -839,6 +839,7 @@ void User::UnOper() */ this->oper.clear(); + /* Remove all oper only modes from the user when the deoper - Bug #466*/ std::string moderemove("-"); @@ -849,12 +850,13 @@ void User::UnOper() moderemove += letter; } + std::vector<std::string> parameters; parameters.push_back(this->nick); parameters.push_back(moderemove); ServerInstance->Parser->CallHandler("MODE", parameters, this); - + /* remove the user from the oper list. Will remove multiple entries as a safeguard against bug #404 */ ServerInstance->Users->all_opers.remove(this); @@ -872,6 +874,7 @@ void User::UnOper() AllowedUserModes.reset(); AllowedChanModes.reset(); + this->modes[UM_OPERATOR] = 0; } } |