diff options
Diffstat (limited to 'include/modules')
| -rw-r--r-- | include/modules/protocol/bahamut.h | 195 | ||||
| -rw-r--r-- | include/modules/protocol/charybdis.h | 98 | ||||
| -rw-r--r-- | include/modules/protocol/hybrid.h | 234 | ||||
| -rw-r--r-- | include/modules/protocol/inspircd20.h | 264 | ||||
| -rw-r--r-- | include/modules/protocol/ngircd.h | 88 | ||||
| -rw-r--r-- | include/modules/protocol/plexus.h | 99 | ||||
| -rw-r--r-- | include/modules/protocol/ratbox.h | 93 | ||||
| -rw-r--r-- | include/modules/protocol/rfc1459.h | 159 | ||||
| -rw-r--r-- | include/modules/protocol/ts6.h | 37 | ||||
| -rw-r--r-- | include/modules/protocol/unreal.h | 232 |
10 files changed, 1254 insertions, 245 deletions
diff --git a/include/modules/protocol/bahamut.h b/include/modules/protocol/bahamut.h index f120c7d4c..fd0d47c87 100644 --- a/include/modules/protocol/bahamut.h +++ b/include/modules/protocol/bahamut.h @@ -22,62 +22,201 @@ namespace bahamut { -class Proto : public IRCDProto +namespace senders +{ + +class Akill : public messages::Akill { public: - Proto(Module *creator); + using messages::Akill::Akill; - void SendMode(const MessageSource &source, Channel *dest, const Anope::string &buf) override; + void Send(User *, XLine *) override; +}; - void SendMode(const MessageSource &source, User *u, const Anope::string &buf) override; +class AkillDel : public messages::AkillDel +{ + public: + using messages::AkillDel::AkillDel; - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override; + void Send(XLine *) override; +}; + +class MessageChannel : public messages::MessageChannel +{ + public: + using messages::MessageChannel::MessageChannel; + + void Send(Channel *) override; +}; - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override; +class Join : public messages::Join +{ + public: + using messages::Join::Join; + + void Send(User *u, Channel *c, const ChannelStatus *status) override; +}; + +class Kill : public messages::Kill +{ + public: + using messages::Kill::Kill; + + void Send(const MessageSource &source, const Anope::string &target, const Anope::string &reason) override; + + void Send(const MessageSource &source, User *user, const Anope::string &reason) override; +}; + +class Login : public messages::Login +{ + public: + using messages::Login::Login; - void SendSVSHold(const Anope::string &nick, time_t time) override; + void Send(User *u, NickServ::Nick *na) override; +}; - void SendSVSHoldDel(const Anope::string &nick) override; +class Logout : public messages::Logout +{ + public: + using messages::Logout::Logout; - void SendSQLine(User *, XLine *x) override; + void Send(User *u) override; +}; - void SendSGLineDel(XLine *x) override; +class ModeChannel : public messages::ModeChannel +{ + public: + using messages::ModeChannel::ModeChannel; - void SendSZLineDel(XLine *x) override; + void Send(const MessageSource &source, Channel *channel, const Anope::string &modes) override; +}; - void SendSZLine(User *, XLine *x) override; +class ModeUser : public messages::ModeUser +{ + public: + using messages::ModeUser::ModeUser; - void SendSVSNOOP(Server *server, bool set) override; + void Send(const MessageSource &source, User *user, const Anope::string &modes) override; +}; - void SendSGLine(User *, XLine *x) override; +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; - void SendAkillDel(XLine *x) override; + void Send(User *user) override; +}; - void SendTopic(const MessageSource &source, Channel *c) override; +class NOOP : public messages::NOOP +{ + public: + static constexpr const char *NAME = "noop"; - void SendSQLineDel(XLine *x) override; + using messages::NOOP::NOOP; - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override; + void Send(Server *s, bool mode) override; +}; - void SendAkill(User *u, XLine *x) override; +class SGLine : public messages::SGLine +{ + public: + using messages::SGLine::SGLine; - void SendSVSKill(const MessageSource &source, User *user, const Anope::string &buf) override; + void Send(User *, XLine *) override; +}; - void SendBOB() override; +class SGLineDel : public messages::SGLineDel +{ + public: + using messages::SGLineDel::SGLineDel; - void SendEOB() override; + void Send(XLine *) override; +}; - void SendClientIntroduction(User *u) override; +class SQLine : public messages::SQLine +{ + public: + using messages::SQLine::SQLine; + + void Send(User *, XLine *) override; +}; + +class SQLineDel : public messages::SQLineDel +{ + public: + using messages::SQLineDel::SQLineDel; + + void Send(XLine *) override; +}; + +class SZLine : public messages::SZLine +{ + public: + using messages::SZLine::SZLine; + + void Send(User *, XLine *) override; +}; + +class SZLineDel : public messages::SZLineDel +{ + public: + using messages::SZLineDel::SZLineDel; + + void Send(XLine *) override; +}; + +class SVSHold : public messages::SVSHold +{ + public: + using messages::SVSHold::SVSHold; + + void Send(const Anope::string &, time_t) override; +}; + +class SVSHoldDel : public messages::SVSHoldDel +{ + public: + using messages::SVSHoldDel::SVSHoldDel; - void SendServer(Server *server) override; + void Send(const Anope::string &) override; +}; - void SendConnect() override; +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; - void SendChannel(Channel *c) override; + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; - void SendLogin(User *u, NickServ::Nick *) override; +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; + +class Wallops : public messages::Wallops +{ + public: + using messages::Wallops::Wallops; + + void Send(const MessageSource &source, const Anope::string &msg) override; +}; + +} // namespace senders + +class Proto : public IRCDProto +{ + public: + Proto(Module *creator); + + void SendBOB() override; + + void SendEOB() override; - void SendLogout(User *u) override; + void Handshake() override; }; class Burst : public IRCDMessage diff --git a/include/modules/protocol/charybdis.h b/include/modules/protocol/charybdis.h index ee81a60a1..f3c06bfeb 100644 --- a/include/modules/protocol/charybdis.h +++ b/include/modules/protocol/charybdis.h @@ -19,53 +19,91 @@ #pragma once +#include "modules/protocol/ts6.h" +#include "modules/protocol/ratbox.h" + namespace charybdis { -class Proto : public IRCDProto +namespace senders { - ServiceReference<IRCDProto> ratbox; // XXX +class NickIntroduction : public messages::NickIntroduction +{ public: - Proto(Module *creator); + using messages::NickIntroduction::NickIntroduction; - void SendSVSKill(const MessageSource &source, User *targ, const Anope::string &reason) override { ratbox->SendSVSKill(source, targ, reason); } - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override { ratbox->SendGlobalNotice(bi, dest, msg); } - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override { ratbox->SendGlobalPrivmsg(bi, dest, msg); } - void SendGlobops(const MessageSource &source, const Anope::string &buf) override { ratbox->SendGlobops(source, buf); } - void SendSGLine(User *u, XLine *x) override { ratbox->SendSGLine(u, x); } - void SendSGLineDel(XLine *x) override { ratbox->SendSGLineDel(x); } - void SendAkill(User *u, XLine *x) override { ratbox->SendAkill(u, x); } - void SendAkillDel(XLine *x) override { ratbox->SendAkillDel(x); } - void SendSQLine(User *u, XLine *x) override { ratbox->SendSQLine(u, x); } - void SendSQLineDel(XLine *x) override { ratbox->SendSQLineDel(x); } - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override { ratbox->SendJoin(user, c, status); } - void SendServer(Server *server) override { ratbox->SendServer(server); } - void SendChannel(Channel *c) override { ratbox->SendChannel(c); } - void SendTopic(const MessageSource &source, Channel *c) override { ratbox->SendTopic(source, c); } - bool IsIdentValid(const Anope::string &ident) override { return ratbox->IsIdentValid(ident); } - void SendLogin(User *u, NickServ::Nick *na) override { ratbox->SendLogin(u, na); } - void SendLogout(User *u) override { ratbox->SendLogout(u); } + void Send(User *user) override; +}; - void SendConnect() override; +class SASL : public messages::SASL +{ + public: + using messages::SASL::SASL; - void SendClientIntroduction(User *u) override; + void Send(const ::SASL::Message &) override; +}; - void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) override; +class SASLMechanisms : public messages::SASLMechanisms +{ + public: + using messages::SASLMechanisms::SASLMechanisms; - void SendSVSHold(const Anope::string &nick, time_t delay) override; + void Send(const std::vector<Anope::string> &mechanisms) override; +}; - void SendSVSHoldDel(const Anope::string &nick) override; +class SVSHold : public messages::SVSHold +{ + public: + using messages::SVSHold::SVSHold; - void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) override; + void Send(const Anope::string &, time_t) override; +}; - void SendVhostDel(User *u) override; +class SVSHoldDel : public messages::SVSHoldDel +{ + public: + using messages::SVSHoldDel::SVSHoldDel; - void SendSASLMechanisms(std::vector<Anope::string> &mechanisms) override; + void Send(const Anope::string &) override; +}; + +class SVSLogin : public messages::SVSLogin +{ + public: + using messages::SVSLogin::SVSLogin; + + void Send(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; +}; + +class VhostDel : public messages::VhostDel +{ + public: + using messages::VhostDel::VhostDel; + + void Send(User *u) override; +}; + +class VhostSet : public messages::VhostSet +{ + public: + using messages::VhostSet::VhostSet; + + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; + +} // namespace senders + +class Proto : public ts6::Proto +{ + ratbox::Proto ratbox; + + public: + Proto(Module *creator); - void SendSASLMessage(const SASL::Message &message) override; + bool IsIdentValid(const Anope::string &ident) override { return ratbox.IsIdentValid(ident); } - void SendSVSLogin(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; + void Handshake() override; }; class Encap : public IRCDMessage diff --git a/include/modules/protocol/hybrid.h b/include/modules/protocol/hybrid.h index a0a9143a8..7843859c0 100644 --- a/include/modules/protocol/hybrid.h +++ b/include/modules/protocol/hybrid.h @@ -20,74 +20,242 @@ #pragma once #include "modules/protocol/rfc1459.h" +#include "modules/protocol/ts6.h" namespace hybrid { -class Proto : public IRCDProto +namespace senders { - ServiceBot *FindIntroduced(); - void SendSVSKill(const MessageSource &source, User *u, const Anope::string &buf) override; +class Akill : public messages::Akill +{ + public: + using messages::Akill::Akill; - public: - Proto(Module *creator); + void Send(User *, XLine *) override; +}; - void SendInvite(const MessageSource &source, Channel *c, User *u) override; +class AkillDel : public messages::AkillDel +{ + public: + using messages::AkillDel::AkillDel; - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override; + void Send(XLine *) override; +}; - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override; +class MessageChannel : public messages::MessageChannel +{ + public: + using messages::MessageChannel::MessageChannel; - void SendSQLine(User *, XLine *x) override; + void Send(Channel *) override; +}; - void SendSGLineDel(XLine *x) override; +class GlobalNotice : public messages::GlobalNotice +{ + public: + using messages::GlobalNotice::GlobalNotice; - void SendSGLine(User *, XLine *x) override; + void Send(const MessageSource &, Server *dest, const Anope::string &msg) override; +}; - void SendSZLineDel(XLine *x) override; +class GlobalPrivmsg : public messages::GlobalPrivmsg +{ + public: + using messages::GlobalPrivmsg::GlobalPrivmsg; - void SendSZLine(User *, XLine *x) override; + void Send(const MessageSource &, Server *dest, const Anope::string &msg) override; +}; - void SendAkillDel(XLine *x) override; +class Invite : public messages::Invite +{ + public: + using messages::Invite::Invite; - void SendSQLineDel(XLine *x) override; + void Send(const MessageSource &source, Channel *chan, User *user) override; +}; - void SendJoin(User *u, Channel *c, const ChannelStatus *status) override; +class Join : public messages::Join +{ + public: + using messages::Join::Join; - void SendAkill(User *u, XLine *x) override; + void Send(User *u, Channel *c, const ChannelStatus *status) override; +}; - void SendServer(Server *server) override; +class Login : public messages::Login +{ + public: + using messages::Login::Login; - void SendConnect() override; + void Send(User *u, NickServ::Nick *na) override; +}; - void SendClientIntroduction(User *u) override; +class Logout : public messages::Logout +{ + public: + using messages::Logout::Logout; - void SendEOB() override; + void Send(User *u) override; +}; + +class ModeUser : public messages::ModeUser +{ + public: + using messages::ModeUser::ModeUser; - void SendMode(const MessageSource &source, User *u, const Anope::string &buf) override; + void Send(const MessageSource &source, User *user, const Anope::string &modes) override; +}; + +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; + + void Send(User *user) override; +}; + +class MessageServer : public messages::MessageServer +{ + public: + using messages::MessageServer::MessageServer; + + void Send(Server *server) override; +}; - void SendLogin(User *u, NickServ::Nick *na) override; +class SGLine : public messages::SGLine +{ + public: + using messages::SGLine::SGLine; - void SendLogout(User *u) override; + void Send(User *, XLine *) override; +}; - void SendChannel(Channel *c) override; +class SGLineDel : public messages::SGLineDel +{ + public: + using messages::SGLineDel::SGLineDel; - void SendTopic(const MessageSource &source, Channel *c) override; + void Send(XLine *) override; +}; - void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) override; +class SQLine : public messages::SQLine +{ + public: + using messages::SQLine::SQLine; - void SendSVSJoin(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &) override; + void Send(User *, XLine *) override; +}; - void SendSVSPart(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string ¶m) override; +class SQLineDel : public messages::SQLineDel +{ + public: + using messages::SQLineDel::SQLineDel; - void SendSVSHold(const Anope::string &nick, time_t t) override; + void Send(XLine *) override; +}; - void SendSVSHoldDel(const Anope::string &nick) override; +class SZLine : public messages::SZLine +{ + public: + using messages::SZLine::SZLine; - void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) override; + void Send(User *, XLine *) override; +}; - void SendVhostDel(User *u) override; +class SZLineDel : public messages::SZLineDel +{ + public: + using messages::SZLineDel::SZLineDel; + + void Send(XLine *) override; +}; + +class SVSHold : public messages::SVSHold +{ + public: + using messages::SVSHold::SVSHold; + + void Send(const Anope::string &, time_t) override; +}; + +class SVSHoldDel : public messages::SVSHoldDel +{ + public: + using messages::SVSHoldDel::SVSHoldDel; + + void Send(const Anope::string &) override; +}; + +class SVSJoin : public messages::SVSJoin +{ + public: + using messages::SVSJoin::SVSJoin; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) override; +}; + +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; + + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; + +class SVSPart : public messages::SVSPart +{ + public: + using messages::SVSPart::SVSPart; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &reason) override; +}; + +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; + +class VhostDel : public messages::VhostDel +{ + public: + using messages::VhostDel::VhostDel; + + void Send(User *u) override; +}; + +class VhostSet : public messages::VhostSet +{ + public: + using messages::VhostSet::VhostSet; + + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; + +class Wallops : public messages::Wallops +{ + public: + using messages::Wallops::Wallops; + + void Send(const MessageSource &source, const Anope::string &msg) override; +}; + +} // namespace senders + +class Proto : public ts6::Proto +{ + ServiceBot *FindIntroduced(); + + public: + Proto(Module *creator); + + void Handshake() override; + + void SendEOB() override; bool IsIdentValid(const Anope::string &ident) override; }; diff --git a/include/modules/protocol/inspircd20.h b/include/modules/protocol/inspircd20.h index f2126a931..391a0bc79 100644 --- a/include/modules/protocol/inspircd20.h +++ b/include/modules/protocol/inspircd20.h @@ -19,88 +19,270 @@ #pragma once +#include "modules/protocol/ts6.h" + namespace inspircd20 { -class Proto : public IRCDProto +class Proto; + +namespace senders { - private: - void SendSVSKill(const MessageSource &source, User *user, const Anope::string &buf) override; - void SendChgIdentInternal(const Anope::string &nick, const Anope::string &vIdent); +class Akill : public messages::Akill +{ + Proto *proto = nullptr; - void SendChgHostInternal(const Anope::string &nick, const Anope::string &vhost); + public: + Akill(Module *creator, Proto *p) : messages::Akill(creator), + proto(p) + { + } - void SendAddLine(const Anope::string &xtype, const Anope::string &mask, time_t duration, const Anope::string &addedby, const Anope::string &reason); + void Send(User *, XLine *) override; +}; - void SendDelLine(const Anope::string &xtype, const Anope::string &mask); +class AkillDel : public messages::AkillDel +{ + Proto *proto = nullptr; public: - Proto(Module *creator); + AkillDel(Module *creator, Proto *p) : messages::AkillDel(creator), + proto(p) + { + } - void SendConnect() override; + void Send(XLine *) override; +}; - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override; +class MessageChannel : public messages::MessageChannel +{ + public: + using messages::MessageChannel::MessageChannel; - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override; + void Send(Channel *) override; +}; - void SendAkillDel(XLine *x) override; +class Join : public messages::Join +{ + public: + using messages::Join::Join; - void SendTopic(const MessageSource &source, Channel *c) override; + void Send(User *u, Channel *c, const ChannelStatus *status) override; +}; - void SendVhostDel(User *u) override; +class Login : public messages::Login +{ + public: + using messages::Login::Login; - void SendAkill(User *u, XLine *x) override; + void Send(User *u, NickServ::Nick *na) override; +}; - void SendNumeric(int numeric, User *dest, IRCMessage &message); +class Logout : public messages::Logout +{ + public: + using messages::Logout::Logout; - void SendMode(const MessageSource &source, Channel *dest, const Anope::string &buf) override; + void Send(User *u) override; +}; - void SendClientIntroduction(User *u) override; +class ModeChannel : public messages::ModeChannel +{ + public: + using messages::ModeChannel::ModeChannel; - void SendServer(Server *server) override; + void Send(const MessageSource &source, Channel *channel, const Anope::string &modes) override; +}; - void SendSquit(Server *s, const Anope::string &message) override; +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override; + void Send(User *user) override; +}; - void SendSQLineDel(XLine *x) override; +class MessageServer : public messages::MessageServer +{ + public: + using messages::MessageServer::MessageServer; - void SendSQLine(User *, XLine *x) override; + void Send(Server *server) override; +}; - void SendVhost(User *u, const Anope::string &vIdent, const Anope::string &vhost) override; +class SASL : public messages::SASL +{ + public: + using messages::SASL::SASL; - void SendSVSHold(const Anope::string &nick, time_t t) override; + void Send(const ::SASL::Message &) override; +}; - void SendSVSHoldDel(const Anope::string &nick) override; +class SASLMechanisms : public messages::SASLMechanisms +{ + public: + using messages::SASLMechanisms::SASLMechanisms; - void SendSZLineDel(XLine *x) override; + void Send(const std::vector<Anope::string> &mechanisms) override; +}; - void SendSZLine(User *, XLine *x) override; +class SQLine : public messages::SQLine +{ + Proto *proto = nullptr; - void SendSVSJoin(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &) override; + public: + SQLine(Module *creator, Proto *p) : messages::SQLine(creator), + proto(p) + { + } - void SendSVSPart(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string ¶m) override; + void Send(User *, XLine *) override; +}; - void SendSWhois(const MessageSource &, const Anope::string &who, const Anope::string &mask) override; +class SQLineDel : public messages::SQLineDel +{ + Proto *proto = nullptr; - void SendBOB() override; + public: + SQLineDel(Module *creator, Proto *p) : messages::SQLineDel(creator), + proto(p) + { + } - void SendEOB() override; + void Send(XLine *) override; +}; + +class SQuit : public messages::SQuit +{ + public: + using messages::SQuit::SQuit; + + void Send(Server *s, const Anope::string &message) override; +}; + +class SZLine : public messages::SZLine +{ + Proto *proto = nullptr; + + public: + SZLine(Module *creator, Proto *p) : messages::SZLine(creator), + proto(p) + { + } + + void Send(User *, XLine *) override; +}; + +class SZLineDel : public messages::SZLineDel +{ + Proto *proto = nullptr; + + public: + SZLineDel(Module *creator, Proto *p) : messages::SZLineDel(creator), + proto(p) + { + } + + void Send(XLine *) override; +}; + +class SVSHold : public messages::SVSHold +{ + public: + using messages::SVSHold::SVSHold; + + void Send(const Anope::string &, time_t) override; +}; + +class SVSHoldDel : public messages::SVSHoldDel +{ + public: + using messages::SVSHoldDel::SVSHoldDel; - void SendGlobops(const MessageSource &source, const Anope::string &buf) override; + void Send(const Anope::string &) override; +}; - void SendLogin(User *u, NickServ::Nick *na) override; +class SVSLogin : public messages::SVSLogin +{ + public: + using messages::SVSLogin::SVSLogin; - void SendLogout(User *u) override; + void Send(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; +}; - void SendChannel(Channel *c) override; +class SWhois : public messages::SWhois +{ + public: + using messages::SWhois::SWhois; - void SendSASLMechanisms(std::vector<Anope::string> &mechanisms) override; + void Send(const MessageSource &, User *user, const Anope::string &) override; +}; - void SendSASLMessage(const SASL::Message &message) override; +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; + +class VhostDel : public messages::VhostDel +{ + Proto *proto = nullptr; + + public: + VhostDel(Module *creator, Proto *p) : messages::VhostDel(creator), + proto(p) + { + } - void SendSVSLogin(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; + void Send(User *u) override; +}; + +class VhostSet : public messages::VhostSet +{ + Proto *proto = nullptr; + + public: + VhostSet(Module *creator, Proto *p) : messages::VhostSet(creator), + proto(p) + { + } + + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; + +class Wallops : public messages::Wallops +{ + public: + using messages::Wallops::Wallops; + + void Send(const MessageSource &source, const Anope::string &msg) override; +}; + +} // namespace senders + +class Proto : public ts6::Proto +{ + public: + Proto(Module *creator); + + void SendChgIdentInternal(const Anope::string &nick, const Anope::string &vIdent); + + void SendChgHostInternal(const Anope::string &nick, const Anope::string &vhost); + + void SendAddLine(const Anope::string &xtype, const Anope::string &mask, time_t duration, const Anope::string &addedby, const Anope::string &reason); + + void SendDelLine(const Anope::string &xtype, const Anope::string &mask); + + void Handshake() override; + + void SendNumeric(int numeric, User *dest, IRCMessage &message) override; + + void SendBOB() override; + + void SendEOB() override; bool IsExtbanValid(const Anope::string &mask) override; @@ -272,7 +454,7 @@ class ServerMessage : public IRCDMessage class SQuit : public rfc1459::SQuit { public: - SQuit(Module *creator) : rfc1459::SQuit(creator) { } + using rfc1459::SQuit::SQuit; void Run(MessageSource &source, const std::vector<Anope::string> ¶ms) override; }; diff --git a/include/modules/protocol/ngircd.h b/include/modules/protocol/ngircd.h index fef637aca..072dfb0f6 100644 --- a/include/modules/protocol/ngircd.h +++ b/include/modules/protocol/ngircd.h @@ -23,46 +23,89 @@ namespace ngircd { -class Proto : public IRCDProto +namespace senders { - void SendSVSKill(const MessageSource &source, User *user, const Anope::string &buf) override; +class Akill : public messages::Akill +{ public: - Proto(Module *creator); + using messages::Akill::Akill; + + void Send(User *, XLine *) override; +}; + +class AkillDel : public messages::AkillDel +{ + public: + using messages::AkillDel::AkillDel; + + void Send(XLine *) override; +}; - void SendAkill(User *u, XLine *x) override; +class MessageChannel : public messages::MessageChannel +{ + public: + using messages::MessageChannel::MessageChannel; - void SendAkillDel(XLine *x) override; + void Send(Channel *) override; +}; - void SendChannel(Channel *c) override; +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; + + void Send(User *user) override; +}; - // Received: :dev.anope.de NICK DukeP 1 ~DukePyro p57ABF9C9.dip.t-dialin.net 1 +i :DukePyrolator - void SendClientIntroduction(User *u) override; +class Login : public messages::Login +{ + public: + using messages::Login::Login; - void SendConnect() override; + void Send(User *u, NickServ::Nick *na) override; +}; - void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) override; +class Logout : public messages::Logout +{ + public: + using messages::Logout::Logout; - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override; + void Send(User *u) override; +}; - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override; +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; - void SendGlobops(const MessageSource &source, const Anope::string &buf) override; + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override; +class VhostDel : public messages::VhostDel +{ + public: + using messages::VhostDel::VhostDel; - void SendLogin(User *u, NickServ::Nick *na) override; + void Send(User *u) override; +}; - void SendLogout(User *u) override; +class VhostSet : public messages::VhostSet +{ + public: + using messages::VhostSet::VhostSet; - /* SERVER name hop descript */ - void SendServer(Server *server) override; + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; - void SendTopic(const MessageSource &source, Channel *c) override; +} - void SendVhost(User *u, const Anope::string &vIdent, const Anope::string &vhost) override; +class Proto : public IRCDProto +{ + public: + Proto(Module *creator); - void SendVhostDel(User *u) override; + void Handshake() override; Anope::string Format(IRCMessage &message) override; }; @@ -72,7 +115,6 @@ class Numeric005 : public IRCDMessage public: Numeric005(Module *creator) : IRCDMessage(creator, "005", 1) { SetFlag(IRCDMESSAGE_SOFT_LIMIT); } - // Please see <http://www.irc.org/tech_docs/005.html> for details. void Run(MessageSource &source, const std::vector<Anope::string> ¶ms) override; }; @@ -168,4 +210,4 @@ class ServerMessage : public IRCDMessage void Run(MessageSource &source, const std::vector<Anope::string> ¶ms) override; }; -} // namespace ngircd
\ No newline at end of file +} // namespace ngircd diff --git a/include/modules/protocol/plexus.h b/include/modules/protocol/plexus.h index 69be3d713..4afbc391e 100644 --- a/include/modules/protocol/plexus.h +++ b/include/modules/protocol/plexus.h @@ -19,55 +19,96 @@ #pragma once +#include "modules/protocol/ts6.h" + namespace plexus { -class Proto : public IRCDProto +namespace senders { - ServiceReference<IRCDProto> hybrid; // XXX use moddeps + inheritance here +class ModeUser : public messages::ModeUser +{ public: - Proto(Module *creator); + using messages::ModeUser::ModeUser; + + void Send(const MessageSource &source, User *user, const Anope::string &modes) override; +}; + +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; + + void Send(User *user) override; +}; + +class NOOP : public messages::NOOP +{ + public: + static constexpr const char *NAME = "noop"; + + using messages::NOOP::NOOP; + + void Send(Server *s, bool mode) override; +}; + +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; - void SendSVSKill(const MessageSource &source, User *targ, const Anope::string &reason) override { hybrid->SendSVSKill(source, targ, reason); } - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override { hybrid->SendGlobalNotice(bi, dest, msg); } - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override { hybrid->SendGlobalPrivmsg(bi, dest, msg); } - void SendSQLine(User *u, XLine *x) override { hybrid->SendSQLine(u, x); } - void SendSQLineDel(XLine *x) override { hybrid->SendSQLineDel(x); } - void SendSGLineDel(XLine *x) override { hybrid->SendSGLineDel(x); } - void SendSGLine(User *u, XLine *x) override { hybrid->SendSGLine(u, x); } - void SendAkillDel(XLine *x) override { hybrid->SendAkillDel(x); } - void SendAkill(User *u, XLine *x) override { hybrid->SendAkill(u, x); } - void SendServer(Server *server) override { hybrid->SendServer(server); } - void SendChannel(Channel *c) override { hybrid->SendChannel(c); } - void SendSVSHold(const Anope::string &nick, time_t t) override { hybrid->SendSVSHold(nick, t); } - void SendSVSHoldDel(const Anope::string &nick) override { hybrid->SendSVSHoldDel(nick); } + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; - void SendGlobops(const MessageSource &source, const Anope::string &buf) override; +class SVSJoin : public messages::SVSJoin +{ + public: + using messages::SVSJoin::SVSJoin; - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override; + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) override; +}; - void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) override; +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; - void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) override; + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; - void SendVhostDel(User *u) override; +class SVSPart : public messages::SVSPart +{ + public: + using messages::SVSPart::SVSPart; - void SendConnect() override; + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &reason) override; +}; - void SendClientIntroduction(User *u) override; +class VhostDel : public messages::VhostDel +{ + public: + using messages::VhostDel::VhostDel; - void SendMode(const MessageSource &source, User *u, const Anope::string &buf) override; + void Send(User *u) override; +}; - void SendLogin(User *u, NickServ::Nick *na) override; +class VhostSet : public messages::VhostSet +{ + public: + using messages::VhostSet::VhostSet; - void SendLogout(User *u) override; + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; - void SendTopic(const MessageSource &source, Channel *c) override; +} // namespace senders - void SendSVSJoin(const MessageSource &source, User *user, const Anope::string &chan, const Anope::string ¶m) override; +class Proto : public ts6::Proto +{ + public: + Proto(Module *creator); - void SendSVSPart(const MessageSource &source, User *user, const Anope::string &chan, const Anope::string ¶m) override; + void Handshake() override; }; class Encap : public IRCDMessage diff --git a/include/modules/protocol/ratbox.h b/include/modules/protocol/ratbox.h index ba7a7f19f..475b368cc 100644 --- a/include/modules/protocol/ratbox.h +++ b/include/modules/protocol/ratbox.h @@ -20,47 +20,92 @@ #pragma once #include "modules/protocol/rfc1459.h" +#include "modules/protocol/ts6.h" namespace ratbox { -class Proto : public IRCDProto +namespace senders { - ServiceReference<IRCDProto> hybrid; // XXX - ServiceBot *FindIntroduced(); +class Login : public messages::Login +{ + public: + using messages::Login::Login; + + void Send(User *u, NickServ::Nick *na) override; +}; +class Logout : public messages::Logout +{ public: - Proto(Module *creator); + using messages::Logout::Logout; + + void Send(User *u) override; +}; + +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; + + void Send(User *user) override; +}; + +class SQLine : public messages::SQLine +{ + public: + using messages::SQLine::SQLine; + + void Send(User *, XLine *) override; +}; + +class SQLineDel : public messages::SQLineDel +{ + public: + using messages::SQLineDel::SQLineDel; + + void Send(XLine *) override; +}; + +class SVSNick : public messages::SVSNick +{ + public: + using messages::SVSNick::SVSNick; + + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; + +class Topic : public rfc1459::senders::Topic +{ + public: + using rfc1459::senders::Topic::Topic; - void SendSVSKill(const MessageSource &source, User *targ, const Anope::string &reason) override { hybrid->SendSVSKill(source, targ, reason); } - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override { hybrid->SendGlobalNotice(bi, dest, msg); } - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override { hybrid->SendGlobalPrivmsg(bi, dest, msg); } - void SendSGLine(User *u, XLine *x) override { hybrid->SendSGLine(u, x); } - void SendSGLineDel(XLine *x) override { hybrid->SendSGLineDel(x); } - void SendAkill(User *u, XLine *x) override { hybrid->SendAkill(u, x); } - void SendAkillDel(XLine *x) override { hybrid->SendAkillDel(x); } - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override { hybrid->SendJoin(user, c, status); } - void SendServer(Server *server) override { hybrid->SendServer(server); } - void SendMode(const MessageSource &source, User *u, const Anope::string &buf) override { hybrid->SendMode(source, u, buf); } - void SendChannel(Channel *c) override { hybrid->SendChannel(c); } - bool IsIdentValid(const Anope::string &ident) override { return hybrid->IsIdentValid(ident); } + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; - void SendGlobops(const MessageSource &source, const Anope::string &buf) override; +class Wallops : public messages::Wallops +{ + public: + using messages::Wallops::Wallops; - void SendConnect() override; + void Send(const MessageSource &source, const Anope::string &msg) override; +}; - void SendClientIntroduction(User *u) override; +} // senders - void SendLogin(User *u, NickServ::Nick *na) override; +class Proto : public ts6::Proto +{ + hybrid::Proto hybrid; - void SendLogout(User *u) override; + ServiceBot *FindIntroduced(); - void SendTopic(const MessageSource &source, Channel *c) override; + public: + Proto(Module *creator); - void SendSQLine(User *, XLine *x) override; + bool IsIdentValid(const Anope::string &ident) override { return hybrid.IsIdentValid(ident); } - void SendSQLineDel(XLine *x) override; + void Handshake() override; }; class Encap : public IRCDMessage diff --git a/include/modules/protocol/rfc1459.h b/include/modules/protocol/rfc1459.h index 4ef8f0313..54c4bada5 100644 --- a/include/modules/protocol/rfc1459.h +++ b/include/modules/protocol/rfc1459.h @@ -22,6 +22,165 @@ namespace rfc1459 { +namespace senders +{ + +class GlobalNotice : public messages::GlobalNotice +{ + public: + using messages::GlobalNotice::GlobalNotice; + + void Send(const MessageSource &, Server *dest, const Anope::string &msg) override; +}; + +class GlobalPrivmsg : public messages::GlobalPrivmsg +{ + public: + using messages::GlobalPrivmsg::GlobalPrivmsg; + + void Send(const MessageSource &, Server *dest, const Anope::string &msg) override; +}; + +class Invite : public messages::Invite +{ + public: + using messages::Invite::Invite; + + void Send(const MessageSource &source, Channel *chan, User *user) override; +}; + +class Join : public messages::Join +{ + public: + using messages::Join::Join; + + void Send(User *u, Channel *c, const ChannelStatus *status) override; +}; + +class Kick : public messages::Kick +{ + public: + using messages::Kick::Kick; + + void Send(const MessageSource &source, Channel *chan, User *user, const Anope::string &reason) override; +}; + +class Kill : public messages::Kill +{ + public: + using messages::Kill::Kill; + + void Send(const MessageSource &source, const Anope::string &target, const Anope::string &reason) override; + + void Send(const MessageSource &source, User *user, const Anope::string &reason) override; +}; + +class ModeChannel : public messages::ModeChannel +{ + public: + using messages::ModeChannel::ModeChannel; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &modes) override; +}; + +class ModeUser : public messages::ModeUser +{ + public: + using messages::ModeUser::ModeUser; + + void Send(const MessageSource &source, User *user, const Anope::string &modes) override; +}; + +class NickChange : public messages::NickChange +{ + public: + using messages::NickChange::NickChange; + + void Send(User *u, const Anope::string &newnick, time_t ts) override; +}; + +class Notice : public messages::Notice +{ + public: + using messages::Notice::Notice; + + void Send(const MessageSource &source, const Anope::string &dest, const Anope::string &msg) override; +}; + +class Part : public messages::Part +{ + public: + using messages::Part::Part; + + void Send(User *, Channel *chan, const Anope::string &reason) override; +}; + +class Ping : public messages::Ping +{ + public: + using messages::Ping::Ping; + + void Send(const Anope::string &servname, const Anope::string &who) override; +}; + +class Pong : public messages::Pong +{ + public: + using messages::Pong::Pong; + + void Send(const Anope::string &servname, const Anope::string &who) override; +}; + +class Privmsg : public messages::Privmsg +{ + public: + using messages::Privmsg::Privmsg; + + void Send(const MessageSource &source, const Anope::string &dest, const Anope::string &msg) override; +}; + +class Quit : public messages::Quit +{ + public: + using messages::Quit::Quit; + + void Send(User *user, const Anope::string &reason) override; +}; + +class MessageServer : public messages::MessageServer +{ + public: + using messages::MessageServer::MessageServer; + + void Send(Server *server) override; +}; + +class SQuit : public messages::SQuit +{ + public: + using messages::SQuit::SQuit; + + void Send(Server *s, const Anope::string &message) override; +}; + +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; + +class Wallops : public messages::Wallops +{ + public: + using messages::Wallops::Wallops; + + void Send(const MessageSource &, const Anope::string &msg) override; +}; + +} // namespace senders + class Away : public IRCDMessage { public: diff --git a/include/modules/protocol/ts6.h b/include/modules/protocol/ts6.h new file mode 100644 index 000000000..71748b5b7 --- /dev/null +++ b/include/modules/protocol/ts6.h @@ -0,0 +1,37 @@ +/* + * Anope IRC Services + * + * Copyright (C) 2016 Anope Team <team@anope.org> + * + * This file is part of Anope. Anope is free software; you can + * redistribute it and/or modify it under the terms of the GNU + * General Public License as published by the Free Software + * Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +namespace ts6 +{ + +class Proto : public IRCDProto +{ + public: + Proto(Module *creator, const Anope::string &proto_name) : IRCDProto(creator, proto_name) + { + } + + /* Retrieves the next free UID or SID */ + Anope::string UID_Retrieve() override; + Anope::string SID_Retrieve() override; +}; + +} // namespace ts6 diff --git a/include/modules/protocol/unreal.h b/include/modules/protocol/unreal.h index 0a01cb4be..9039cc2cd 100644 --- a/include/modules/protocol/unreal.h +++ b/include/modules/protocol/unreal.h @@ -22,79 +22,237 @@ namespace unreal { -class Proto : public IRCDProto +namespace senders +{ + +class Akill : public messages::Akill { public: - Proto(Module *creator); + using messages::Akill::Akill; - private: - void SendSVSNOOP(Server *server, bool set) override; + void Send(User *, XLine *) override; +}; + +class AkillDel : public messages::AkillDel +{ + public: + using messages::AkillDel::AkillDel; + + void Send(XLine *) override; +}; + +class MessageChannel : public messages::MessageChannel +{ + public: + using messages::MessageChannel::MessageChannel; + + void Send(Channel *) override; +}; - void SendAkillDel(XLine *x) override; +class Join : public messages::Join +{ + public: + using messages::Join::Join; - void SendTopic(const MessageSource &source, Channel *c) override; + void Send(User *u, Channel *c, const ChannelStatus *status) override; +}; - void SendGlobalNotice(ServiceBot *bi, Server *dest, const Anope::string &msg) override; +class Login : public messages::Login +{ + public: + using messages::Login::Login; - void SendGlobalPrivmsg(ServiceBot *bi, Server *dest, const Anope::string &msg) override; + void Send(User *u, NickServ::Nick *na) override; +}; - void SendVhostDel(User *u) override; +class Logout : public messages::Logout +{ + public: + using messages::Logout::Logout; - void SendAkill(User *u, XLine *x) override; + void Send(User *u) override; +}; - void SendSVSKill(const MessageSource &source, User *user, const Anope::string &buf) override; +class Kill : public messages::Kill +{ + public: + using messages::Kill::Kill; - void SendMode(const MessageSource &source, User *u, const Anope::string &buf) override; + void Send(const MessageSource &source, const Anope::string &target, const Anope::string &reason) override; - void SendClientIntroduction(User *u) override; + void Send(const MessageSource &source, User *user, const Anope::string &reason) override; +}; - void SendServer(Server *server) override; +class ModeUser : public messages::ModeUser +{ + public: + using messages::ModeUser::ModeUser; - void SendJoin(User *user, Channel *c, const ChannelStatus *status) override; + void Send(const MessageSource &source, User *user, const Anope::string &modes) override; +}; - void SendSQLineDel(XLine *x) override; +class NickIntroduction : public messages::NickIntroduction +{ + public: + using messages::NickIntroduction::NickIntroduction; - void SendSQLine(User *, XLine *x) override; + void Send(User *user) override; +}; - void SendVhost(User *u, const Anope::string &vIdent, const Anope::string &vhost) override; +class SASL : public messages::SASL +{ + public: + using messages::SASL::SASL; - void SendConnect() override; + void Send(const ::SASL::Message &) override; +}; - void SendSVSHold(const Anope::string &nick, time_t t) override; +class MessageServer : public messages::MessageServer +{ + public: + using messages::MessageServer::MessageServer; - void SendSVSHoldDel(const Anope::string &nick) override; + void Send(Server *server) override; +}; - void SendSGLineDel(XLine *x) override; +class SGLine : public messages::SGLine +{ + public: + using messages::SGLine::SGLine; - void SendSZLineDel(XLine *x) override; + void Send(User *, XLine *) override; +}; - void SendSZLine(User *, XLine *x) override; +class SGLineDel : public messages::SGLineDel +{ + public: + using messages::SGLineDel::SGLineDel; - void SendSGLine(User *, XLine *x) override; + void Send(XLine *) override; +}; - void SendSVSJoin(const MessageSource &source, User *user, const Anope::string &chan, const Anope::string ¶m) override; +class SQLine : public messages::SQLine +{ + public: + using messages::SQLine::SQLine; - void SendSVSPart(const MessageSource &source, User *user, const Anope::string &chan, const Anope::string ¶m) override; + void Send(User *, XLine *) override; +}; - void SendSWhois(const MessageSource &source, const Anope::string &who, const Anope::string &mask) override; +class SQLineDel : public messages::SQLineDel +{ + public: + using messages::SQLineDel::SQLineDel; - void SendEOB() override; + void Send(XLine *) override; +}; - bool IsNickValid(const Anope::string &nick) override; +class SZLine : public messages::SZLine +{ + public: + using messages::SZLine::SZLine; - bool IsChannelValid(const Anope::string &chan) override; + void Send(User *, XLine *) override; +}; - bool IsExtbanValid(const Anope::string &mask) override; +class SZLineDel : public messages::SZLineDel +{ + public: + using messages::SZLineDel::SZLineDel; + + void Send(XLine *) override; +}; + +class SVSHold : public messages::SVSHold +{ + public: + using messages::SVSHold::SVSHold; + + void Send(const Anope::string &, time_t) override; +}; + +class SVSHoldDel : public messages::SVSHoldDel +{ + public: + using messages::SVSHoldDel::SVSHoldDel; + + void Send(const Anope::string &) override; +}; + +class SVSJoin : public messages::SVSJoin +{ + public: + using messages::SVSJoin::SVSJoin; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) override; +}; + +class SVSLogin : public messages::SVSLogin +{ + public: + using messages::SVSLogin::SVSLogin; + + void Send(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; +}; + +class SVSPart : public messages::SVSPart +{ + public: + using messages::SVSPart::SVSPart; + + void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &reason) override; +}; + +class SWhois : public messages::SWhois +{ + public: + using messages::SWhois::SWhois; + + void Send(const MessageSource &, User *user, const Anope::string &) override; +}; + +class Topic : public messages::Topic +{ + public: + using messages::Topic::Topic; + + void Send(const MessageSource &source, Channel *channel, const Anope::string &topic, time_t topic_ts, const Anope::string &topic_setter) override; +}; + +class VhostDel : public messages::VhostDel +{ + public: + using messages::VhostDel::VhostDel; + + void Send(User *u) override; +}; + +class VhostSet : public messages::VhostSet +{ + public: + using messages::VhostSet::VhostSet; + + void Send(User *u, const Anope::string &vident, const Anope::string &vhost) override; +}; - void SendLogin(User *u, NickServ::Nick *na) override; +} // namespace senders - void SendLogout(User *u) override; +class Proto : public IRCDProto +{ + public: + Proto(Module *creator); - void SendChannel(Channel *c) override; + private: - void SendSASLMessage(const ::SASL::Message &message) override; + void Handshake() override; - void SendSVSLogin(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override; + void SendEOB() override; + + bool IsNickValid(const Anope::string &nick) override; + + bool IsChannelValid(const Anope::string &chan) override; + + bool IsExtbanValid(const Anope::string &mask) override; bool IsIdentValid(const Anope::string &ident) override; }; |
