summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-04 13:21:12 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-04 13:21:12 +0000
commitd3d32dcf6ddb15d8ca9089de63a51b45b437a063 (patch)
tree5c7769926b7b886f174b3a470b16008c0620c9d0
parent0d9e5bd011a1b5c4bb3b094a82744afcdd86cbb3 (diff)
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
-rw-r--r--include/protocol.h20
-rw-r--r--src/modules/m_messageflood.cpp5
-rw-r--r--src/modules/m_timedbans.cpp7
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<std::string> 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<std::string> 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;