diff options
-rw-r--r-- | include/protocol.h | 3 | ||||
-rw-r--r-- | modules/protocol/inspircd.cpp | 1 | ||||
-rw-r--r-- | modules/protocol/plexus.cpp | 10 | ||||
-rw-r--r-- | modules/protocol/solanum.cpp | 1 | ||||
-rw-r--r-- | modules/protocol/unrealircd.cpp | 1 | ||||
-rw-r--r-- | modules/sasl.cpp | 8 |
6 files changed, 9 insertions, 15 deletions
diff --git a/include/protocol.h b/include/protocol.h index 92b53ef91..97eb772b5 100644 --- a/include/protocol.h +++ b/include/protocol.h @@ -101,9 +101,6 @@ public: /* See ns_cert */ bool CanCertFP = false; - /* Can users log out before being fully connected? */ - bool CanSVSLogout = false; - /* Whether this IRCd requires unique IDs for each user or server. See TS6/P10. */ bool RequiresID = false; diff --git a/modules/protocol/inspircd.cpp b/modules/protocol/inspircd.cpp index 3fc3739f3..1fbc39b6a 100644 --- a/modules/protocol/inspircd.cpp +++ b/modules/protocol/inspircd.cpp @@ -145,7 +145,6 @@ public: CanSetVIdent = true; CanSQLine = true; CanSZLine = true; - CanSVSLogout = true; CanCertFP = true; RequiresID = true; MaxModes = 0; diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index e49399602..2840f9c88 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -187,7 +187,15 @@ public: void SendSVSLogin(const Anope::string &uid, NickAlias *na) override { Server *s = Server::Find(uid.substr(0, 3)); - Uplink::Send("ENCAP", s ? s->GetName() : uid.substr(0, 3), "SVSLOGIN", uid, '*', '*', na->GetVHostHost().empty() ? "*" : na->GetVHostHost(), na->nc->display); + Anope::string target = s ? s->GetName() : uid.substr(0, 3); + if (na) + { + Uplink::Send("ENCAP", target, "SVSLOGIN", uid, '*', '*', na->GetVHostHost().empty() ? "*" : na->GetVHostHost(), na->nc->display); + } + else + { + Uplink::Send("ENCAP", target, "SU", uid, ""); + } } void SendSVSNOOP(const Server *server, bool set) override diff --git a/modules/protocol/solanum.cpp b/modules/protocol/solanum.cpp index 3b2e22f85..fccf85230 100644 --- a/modules/protocol/solanum.cpp +++ b/modules/protocol/solanum.cpp @@ -45,7 +45,6 @@ public: CanSZLine = true; CanSVSNick = true; CanSVSHold = true; - CanSVSLogout = true; CanSetVHost = true; RequiresID = true; MaxModes = 4; diff --git a/modules/protocol/unrealircd.cpp b/modules/protocol/unrealircd.cpp index 8f6cbe455..7cc569d38 100644 --- a/modules/protocol/unrealircd.cpp +++ b/modules/protocol/unrealircd.cpp @@ -37,7 +37,6 @@ public: CanSZLine = true; CanSVSHold = true; CanClearBans = true; - CanSVSLogout = true; CanCertFP = true; RequiresID = true; MaxModes = 12; diff --git a/modules/sasl.cpp b/modules/sasl.cpp index 815291166..91957d513 100644 --- a/modules/sasl.cpp +++ b/modules/sasl.cpp @@ -145,14 +145,6 @@ public: void ProcessMessage(Session *sess, const SASL::Message &m) override { - if (!IRCD->CanSVSLogout && !User::Find(sess->uid)) - { - // This IRCd can't log users out yet. - sasl->Fail(sess); - delete sess; - return; - } - if (m.type == "S") { sasl->SendMessage(sess, "C", "+"); |