summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-08-24 23:42:20 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-08-24 23:42:20 +0000
commit392ff5ef8fdac46d5f0a28d3fd12f25a7c541ddf (patch)
tree0c94405afcf1db7a979574915282146f32582404
parent8f67a184a762a3865958c82fe8b135dd61e26015 (diff)
Forward-port r10257, fixes bug #599 reported by mixx941.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10258 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modes/umode_o.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modes/umode_o.cpp b/src/modes/umode_o.cpp
index 7cee7d238..fee6fb447 100644
--- a/src/modes/umode_o.cpp
+++ b/src/modes/umode_o.cpp
@@ -24,7 +24,9 @@ ModeUserOperator::ModeUserOperator(InspIRCd* Instance) : ModeHandler(Instance, '
ModeAction ModeUserOperator::OnModeChange(User* source, User* dest, Channel*, std::string&, bool adding, bool servermode)
{
/* Only opers can execute this class at all */
- if (!IS_OPER(source))
+ if (!ServerInstance->ULine(source->nick) &&
+ !ServerInstance->ULine(source->server) &&
+ !*source->oper)
return MODEACTION_DENY;
/* Not even opers can GIVE the +o mode, only take it away */