summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/extern.h1
-rw-r--r--include/services.h13
2 files changed, 12 insertions, 2 deletions
diff --git a/include/extern.h b/include/extern.h
index 50637b337..8be0f2894 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -1125,7 +1125,6 @@ E void anope_SendGlobops(const char *source, const char *fmt, ...);
E void anope_SendInvite(const char *source, const char *chan, const char *nick); /* INVITE */
E void anope_SendJoin(const char *user, const char *channel, time_t chantime); /* JOIN */
E void anope_SendKick(const char *source, const char *chan, const char *user, const char *fmt, ...); /* KICK */
-E void anope_SendMode(const char *source, const char *dest, const char *fmt, ...); /* MODE */
E void anope_cmd_tmode(const char *source, const char *dest, const char *fmt, ...); /* TMODE */
E void anope_SendBanDel(const char *name, const char *nick); /* MODE -b */
E void anope_SendBotOp(const char *nick, const char *chan); /* MODE BotServ */
diff --git a/include/services.h b/include/services.h
index ffaebd578..ca04f68b2 100644
--- a/include/services.h
+++ b/include/services.h
@@ -1231,6 +1231,7 @@ class IRCDProto;
class IRCDProto {
virtual void SendSVSKillInternal(const char *, const char *, const char *) = 0;
+ virtual void SendModeInternal(const char *, const char *, const char *) = 0;
public:
virtual void SendSVSNOOP(const char *, int) { }
virtual void SendAkillDel(const char *, const char *) = 0;
@@ -1250,7 +1251,17 @@ class IRCDProto {
}
virtual void SendSVSMode(User *, int, const char **) = 0;
virtual void SendGuestNick(const char *, const char *, const char *, const char *, const char *) { }
- virtual void SendMode(const char *, const char *, const char *) = 0;
+ virtual void SendMode(const char *source, const char *dest, const char *fmt, ...)
+ {
+ va_list args;
+ char buf[BUFSIZE] = "";
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+ SendModeInternal(source, dest, buf);
+ }
virtual void SendClientIntroduction(const char *, const char *, const char *, const char *, const char *) = 0;
virtual void SendKick(const char *, const char *, const char *, const char *) = 0;
virtual void SendNoticeChanops(const char *, const char *, const char *) = 0;