summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-10-02 21:21:37 -0400
committerAdam <Adam@anope.org>2012-10-02 21:21:37 -0400
commit7042223f2eb486e8d1aec9fd176d416096a6e927 (patch)
tree819429547978a437a591e499c00202f6f9566ee9
parent93698f0d61935f86019b3491c9e62c6326a180ba (diff)
Somehow the kick handler got lost in the confusion. Send the topic time with ftopic on inspircd not the current time. Removed some unneeded protocol functions
-rw-r--r--include/messages.h7
-rw-r--r--modules/protocol/bahamut.cpp1
-rw-r--r--modules/protocol/inspircd-ts6.h2
-rw-r--r--modules/protocol/inspircd11.cpp9
-rw-r--r--modules/protocol/inspircd12.cpp1
-rw-r--r--modules/protocol/inspircd20.cpp1
-rw-r--r--modules/protocol/plexus.cpp1
-rw-r--r--modules/protocol/ratbox.cpp1
-rw-r--r--modules/protocol/unreal.cpp14
-rw-r--r--src/messages.cpp19
10 files changed, 34 insertions, 22 deletions
diff --git a/include/messages.h b/include/messages.h
index 115f659af..c46d15de9 100644
--- a/include/messages.h
+++ b/include/messages.h
@@ -33,6 +33,13 @@ struct CoreIRCDMessageJoin : IRCDMessage
bool Run(MessageSource &source, const std::vector<Anope::string> &params) anope_override;
};
+struct CoreIRCDMessageKick : IRCDMessage
+{
+ CoreIRCDMessageKick(const Anope::string &mname = "KICK") : IRCDMessage(mname, 2) { SetFlag(IRCDMESSAGE_SOFT_LIMIT); }
+
+ bool Run(MessageSource &source, const std::vector<Anope::string> &params) anope_override;
+};
+
struct CoreIRCDMessageKill : IRCDMessage
{
CoreIRCDMessageKill(const Anope::string &mname = "KILL") : IRCDMessage(mname, 2) { }
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp
index 5ac50bf32..6f785b37e 100644
--- a/modules/protocol/bahamut.cpp
+++ b/modules/protocol/bahamut.cpp
@@ -568,6 +568,7 @@ class ProtoBahamut : public Module
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
CoreIRCDMessageJoin core_message_join;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/inspircd-ts6.h b/modules/protocol/inspircd-ts6.h
index bbe687b07..d011bf70b 100644
--- a/modules/protocol/inspircd-ts6.h
+++ b/modules/protocol/inspircd-ts6.h
@@ -94,7 +94,7 @@ class InspIRCdTS6Proto : public IRCDProto
void SendTopic(BotInfo *whosets, Channel *c) anope_override
{
- UplinkSocket::Message(whosets) << "FTOPIC " << c->name << " " << Anope::CurTime << " " << c->topic_setter << " :" << c->topic;
+ UplinkSocket::Message(whosets) << "FTOPIC " << c->name << " " << c->topic_time << " " << c->topic_setter << " :" << c->topic;
}
void SendVhostDel(User *u) anope_override
diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp
index e3c121f9c..1eb385e4b 100644
--- a/modules/protocol/inspircd11.cpp
+++ b/modules/protocol/inspircd11.cpp
@@ -196,14 +196,6 @@ class InspIRCdProto : public IRCDProto
UplinkSocket::Message(u) << "OPERTYPE Service";
}
- void SendKickInternal(const BotInfo *source, const Channel *chan, const User *user, const Anope::string &buf) anope_override
- {
- if (!buf.empty())
- UplinkSocket::Message(source) << "KICK " << chan->name << " " << user->nick << " :" << buf;
- else
- UplinkSocket::Message(source) << "KICK " << chan->name << " " << user->nick << " :" << user->nick;
- }
-
/* SERVER services-dev.chatspike.net password 0 :Description here */
void SendServer(const Server *server) anope_override
{
@@ -902,6 +894,7 @@ class ProtoInspIRCd : public Module
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
CoreIRCDMessageJoin core_message_join;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp
index c780e8299..1fd9bbc81 100644
--- a/modules/protocol/inspircd12.cpp
+++ b/modules/protocol/inspircd12.cpp
@@ -466,6 +466,7 @@ class ProtoInspIRCd : public Module
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
CoreIRCDMessageJoin core_message_join;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 25d0c9333..ee281420b 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -487,6 +487,7 @@ class ProtoInspIRCd : public Module
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
CoreIRCDMessageJoin core_message_join;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp
index 1ef8adab9..f0b213eab 100644
--- a/modules/protocol/plexus.cpp
+++ b/modules/protocol/plexus.cpp
@@ -641,6 +641,7 @@ class ProtoPlexus : public Module
CoreIRCDMessageAway core_message_away;
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp
index 017af4e3f..a6fc85675 100644
--- a/modules/protocol/ratbox.cpp
+++ b/modules/protocol/ratbox.cpp
@@ -556,6 +556,7 @@ class ProtoRatbox : public Module
CoreIRCDMessageAway core_message_away;
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp
index 3bdcd2e5f..186fc8563 100644
--- a/modules/protocol/unreal.cpp
+++ b/modules/protocol/unreal.cpp
@@ -131,11 +131,6 @@ class UnrealIRCdProto : public IRCDProto
UplinkSocket::Message(source) << "h " << user->nick << " :" << buf;
}
- void SendModeInternal(const BotInfo *source, const Channel *dest, const Anope::string &buf) anope_override
- {
- UplinkSocket::Message(source) << "G " << dest->name << " " << buf;
- }
-
void SendModeInternal(const BotInfo *bi, const User *u, const Anope::string &buf) anope_override
{
UplinkSocket::Message(bi) << "v " << u->nick <<" " << buf;
@@ -147,14 +142,6 @@ class UnrealIRCdProto : public IRCDProto
UplinkSocket::Message() << "& " << u->nick << " 1 " << u->timestamp << " " << u->GetIdent() << " " << u->host << " " << u->server->GetName() << " 0 " << modes << " " << u->host << " * :" << u->realname;
}
- void SendKickInternal(const BotInfo *source, const Channel *chan, const User *user, const Anope::string &buf) anope_override
- {
- if (!buf.empty())
- UplinkSocket::Message(source) << "H " << chan->name << " " << user->nick << " :" << buf;
- else
- UplinkSocket::Message(source) << "H " << chan->name << " " << user->nick;
- }
-
/* SERVER name hop descript */
/* Unreal 3.2 actually sends some info about itself in the descript area */
void SendServer(const Server *server) anope_override
@@ -1105,6 +1092,7 @@ class ProtoUnreal : public Module
CoreIRCDMessageCapab core_message_capab;
CoreIRCDMessageError core_message_error;
CoreIRCDMessageJoin core_message_join;
+ CoreIRCDMessageKick core_message_kick;
CoreIRCDMessageKill core_message_kill;
CoreIRCDMessageMOTD core_message_motd;
CoreIRCDMessagePart core_message_part;
diff --git a/src/messages.cpp b/src/messages.cpp
index 2faa1cbb1..784b482cc 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -94,6 +94,25 @@ bool CoreIRCDMessageJoin::Run(MessageSource &source, const std::vector<Anope::st
return true;
}
+
+bool CoreIRCDMessageKick::Run(MessageSource &source, const std::vector<Anope::string> &params) anope_override
+{
+ const Anope::string &channel = params[0];
+ const Anope::string &users = params[1];
+ const Anope::string &reason = params.size() > 2 ? params[2] : "";
+
+ Channel *c = findchan(channel);
+ if (!c)
+ return true;
+
+ Anope::string user;
+ commasepstream sep(users);
+
+ while (sep.GetToken(user))
+ c->KickInternal(source, user, reason);
+ return true;
+}
+
bool CoreIRCDMessageKill::Run(MessageSource &source, const std::vector<Anope::string> &params) anope_override
{
User *u = finduser(params[0]);