summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;