diff options
Diffstat (limited to 'modules/protocol/unrealircd.cpp')
-rw-r--r-- | modules/protocol/unrealircd.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/modules/protocol/unrealircd.cpp b/modules/protocol/unrealircd.cpp index a6b0aaef8..88826b7da 100644 --- a/modules/protocol/unrealircd.cpp +++ b/modules/protocol/unrealircd.cpp @@ -34,6 +34,7 @@ class UnrealIRCdProto : public IRCDProto CanSQLineChannel = true; CanSZLine = true; CanSVSHold = true; + CanSVSLogout = true; CanCertFP = true; RequiresID = true; MaxModes = 12; @@ -401,11 +402,14 @@ class UnrealIRCdProto : public IRCDProto distmask = uid.substr(0, p); } - if (!na->GetVhostIdent().empty()) - UplinkSocket::Message(Me) << "CHGIDENT " << uid << " " << na->GetVhostIdent(); - if (!na->GetVhostHost().empty()) - UplinkSocket::Message(Me) << "CHGHOST " << uid << " " << na->GetVhostHost(); - UplinkSocket::Message(Me) << "SVSLOGIN " << distmask << " " << uid << " " << na->nc->display; + if (na) + { + if (!na->GetVhostIdent().empty()) + UplinkSocket::Message(Me) << "CHGIDENT " << uid << " " << na->GetVhostIdent(); + if (!na->GetVhostHost().empty()) + UplinkSocket::Message(Me) << "CHGHOST " << uid << " " << na->GetVhostHost(); + } + UplinkSocket::Message(Me) << "SVSLOGIN " << distmask << " " << uid << " " << (na ? na->nc->display : "0"); } bool IsIdentValid(const Anope::string &ident) override |