From 83f19e597f9c8c678ad6c69697491842554b38d6 Mon Sep 17 00:00:00 2001 From: Zoddo Date: Thu, 6 Oct 2016 12:18:27 -0400 Subject: Handle /join 0 for ratbox & charybdis --- modules/protocol/charybdis.cpp | 2 +- modules/protocol/ratbox.cpp | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'modules/protocol') diff --git a/modules/protocol/charybdis.cpp b/modules/protocol/charybdis.cpp index 1f3cb801d..c69fbaf5f 100644 --- a/modules/protocol/charybdis.cpp +++ b/modules/protocol/charybdis.cpp @@ -283,7 +283,7 @@ class ProtoCharybdis : public Module hybrid::BMask message_bmask; charybdis::Encap message_encap; charybdis::EUID message_euid; - hybrid::Join message_join; + ratbox::Join message_join; hybrid::Nick message_nick; charybdis::Pass message_pass; hybrid::Pong message_pong; diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index 5511bcedf..223902457 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -149,6 +149,20 @@ void ratbox::Encap::Run(MessageSource &source, const std::vector } } +void ratbox::Join::Run(MessageSource &source, const std::vector ¶ms) +{ + if (params.size() == 1 && params[0] == "0") + return Message::Join::Run(source, params); + + if (params.size() < 2) + return; + + std::vector p = params; + p.erase(p.begin()); + + return Message::Join::Run(source, p); +} + struct IRCDMessagePass : IRCDMessage { IRCDMessagePass(Module *creator) : IRCDMessage(creator, "PASS", 4) { SetFlag(IRCDMESSAGE_REQUIRE_SERVER); } @@ -224,7 +238,7 @@ class ProtoRatbox : public Module /* Our message handlers */ hybrid::BMask message_bmask; ratbox::Encap message_encap; - hybrid::Join message_join; + ratbox::Join message_join; hybrid::Nick message_nick; IRCDMessagePass message_pass; hybrid::Pong message_pong; -- cgit