From 38ba1423e45adbf65067cc5a160a0c9f69e48bf7 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Thu, 5 Aug 2010 22:03:48 -0400 Subject: Fix DelMode failing on modes using the default ParamChannelModeHandler::OnModeChange --- src/mode.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/mode.cpp') diff --git a/src/mode.cpp b/src/mode.cpp index 979413730..448c4e358 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -170,13 +170,15 @@ ModeAction SimpleChannelModeHandler::OnModeChange(User* source, User* dest, Chan ModeAction ParamChannelModeHandler::OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) { - if (adding && !ParamValidate(parameter)) - return MODEACTION_DENY; - std::string now = channel->GetModeParameter(this); - if (parameter == now) - return MODEACTION_DENY; if (adding) + { + std::string now = channel->GetModeParameter(this); + if (parameter == now) + return MODEACTION_DENY; + if (!ParamValidate(parameter)) + return MODEACTION_DENY; channel->SetModeParam(this, parameter); + } else channel->SetModeParam(this, ""); return MODEACTION_ALLOW; -- cgit v1.3.1-10-gc9f91