From d3d32dcf6ddb15d8ca9089de63a51b45b437a063 Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 4 Apr 2008 13:21:12 +0000 Subject: [PATCH] A convenience function for ProtocolInterface::SendMode that just takes a string, then splits it internally to deque for sending to the other function of the same name git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9303 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/protocol.h | 20 ++++++++++++++++++++ src/modules/m_messageflood.cpp | 5 +---- src/modules/m_timedbans.cpp | 7 +------ 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/include/protocol.h b/include/protocol.h index 21e6b5396..85490c1d0 100644 --- a/include/protocol.h +++ b/include/protocol.h @@ -14,6 +14,8 @@ #ifndef __PROTOCOL_H__ #define __PROTOCOL_H__ +#include "hashcomp.h" + class InspIRCd; typedef std::deque parameterlist; @@ -27,12 +29,30 @@ class ProtocolInterface : public Extensible virtual ~ProtocolInterface() { } virtual void SendEncapsulatedData(parameterlist &encap) { } + virtual void SendMetaData(void* target, int type, const std::string &key, const std::string &data) { } + virtual void SendTopic(Channel* channel, std::string &topic) { } + virtual void SendMode(const std::string &target, parameterlist &modedata) { } + + virtual void SendMode(const std::string &target, const std::string &modeline) + { + /* Convenience function */ + irc::spacesepstream x(modeline); + parameterlist n; + std::string v; + while (x.GetToken(v)) + n.push_back(v); + SendMode(target, n); + } + virtual void SendOperNotice(const std::string &text) { } + virtual void SendModeNotice(const std::string &modes, const std::string &text) { } + virtual void SendSNONotice(const std::string &snomask, const std::string &text) { } + virtual void PushToClient(User* target, const std::string &rawline) { } }; diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index 0eff817aa..a976549c5 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -238,10 +238,7 @@ class ModuleMsgFlood : public Module parameters[2] = user->MakeWildHost(); ServerInstance->SendMode(parameters,3,user); - parameterlist n; - n.push_back("+b"); - n.push_back(user->MakeWildHost()); - ServerInstance->PI->SendMode(dest->name, n); + ServerInstance->PI->SendMode(dest->name, std::string("+b ") + user->MakeWildhost()); } char kickmessage[MAXBUF]; snprintf(kickmessage, MAXBUF, "Channel flood triggered (limit is %d lines in %d secs)", f->lines, f->secs); diff --git a/src/modules/m_timedbans.cpp b/src/modules/m_timedbans.cpp index d592581f5..6c91d1156 100644 --- a/src/modules/m_timedbans.cpp +++ b/src/modules/m_timedbans.cpp @@ -162,12 +162,7 @@ class ModuleTimedBans : public Module setban[1] = "-b"; setban[2] = i->mask.c_str(); - /* Send mode remotely*/ - std::deque n; - n.push_back("-b"); - n.push_back(setban[2]); - - ServerInstance->PI->SendMode(i->channel, n); + ServerInstance->PI->SendMode(i->channel, std::string("-b ") + setban[2]); ServerInstance->SendMode(setban,3, ServerInstance->FakeClient); CUList empty; -- 2.39.2