From d439bfcb17ccaf3d8e9366ce8d3922d3b83326b9 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Tue, 9 Feb 2010 12:43:13 -0600 Subject: Fixups for s2s sync (currently limited to lettered modes) --- src/mode.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/mode.cpp') diff --git a/src/mode.cpp b/src/mode.cpp index 942b0ebd1..df4bf10a9 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -914,31 +914,27 @@ void ModeHandler::RemoveMode(User* user, irc::modestacker* stack) { irc::modestacker tmp; tmp.push(mc); - ServerInstance->Modes->Process(ServerInstance->FakeClient, user, tmp); + ServerInstance->SendMode(ServerInstance->FakeClient, user, tmp, false); } } } -/** This default implementation can remove simple channel modes - * (no parameters) +/** This default implementation can remove non-list modes */ void ModeHandler::RemoveMode(Channel* channel, irc::modestacker* stack) { - char moderemove[MAXBUF]; - std::vector parameters; - if (channel->IsModeSet(this)) { + irc::modechange mc(id, channel->GetModeParameter(this), false); if (stack) { - stack->push(irc::modechange(id, "", false)); + stack->push(mc); } else { - sprintf(moderemove,"-%c",this->GetModeChar()); - parameters.push_back(channel->name); - parameters.push_back(moderemove); - ServerInstance->SendMode(parameters, ServerInstance->FakeClient); + irc::modestacker ms; + ms.push(mc); + ServerInstance->SendMode(ServerInstance->FakeClient, channel, ms, false); } } } -- cgit v1.3.1-10-gc9f91