summaryrefslogtreecommitdiff
path: root/src/protocol.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-02-27 22:42:54 -0500
committerAdam <Adam@anope.org>2014-02-27 22:42:54 -0500
commitfee016bb84ba9a951000dac581261827a11cb668 (patch)
tree251d5d5755652f0eb8b9154b4d52603ea6f98c23 /src/protocol.cpp
parentd24fb039172786e0fb3e3164140b337c85cdeeca (diff)
Handle nick collisions somewhat instead of blindly overwriting the nicks
in memory, which does weird things. For fun different ircds implement this differently (Unreal compares timestamps, TS6 compares timestamps and user username/host), and whether or not we get a kill for our user also varies, so just kill everyone. This can't really happen anyway with properly set qlines, only if services haven't yet set the qlines, or possibly in a bot add/nick user introduce race, or with enforcers, which not many ircds require.
Diffstat (limited to 'src/protocol.cpp')
-rw-r--r--src/protocol.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/protocol.cpp b/src/protocol.cpp
index 01c8d31c8..b90c44400 100644
--- a/src/protocol.cpp
+++ b/src/protocol.cpp
@@ -45,6 +45,11 @@ const Anope::string &IRCDProto::GetProtocolName()
return this->proto_name;
}
+void IRCDProto::SendKill(const MessageSource &source, const Anope::string &target, const Anope::string &reason)
+{
+ UplinkSocket::Message(source) << "KILL " << target << " :" << reason;
+}
+
void IRCDProto::SendSVSKillInternal(const MessageSource &source, User *user, const Anope::string &buf)
{
UplinkSocket::Message(source) << "KILL " << user->GetUID() << " :" << buf;