summaryrefslogtreecommitdiff
path: root/modules/protocol/solanum.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/solanum.cpp')
-rw-r--r--modules/protocol/solanum.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/protocol/solanum.cpp b/modules/protocol/solanum.cpp
index 1ba740d04..c01c4f551 100644
--- a/modules/protocol/solanum.cpp
+++ b/modules/protocol/solanum.cpp
@@ -43,6 +43,7 @@ class SolanumProto : public IRCDProto
CanSZLine = true;
CanSVSNick = true;
CanSVSHold = true;
+ CanSVSLogout = true;
CanSetVHost = true;
RequiresID = true;
MaxModes = 4;
@@ -158,8 +159,13 @@ class SolanumProto : public IRCDProto
void SendSVSLogin(const Anope::string &uid, NickAlias *na) override
{
Server *s = Server::Find(uid.substr(0, 3));
- UplinkSocket::Message(Me) << "ENCAP " << (s ? s->GetName() : uid.substr(0, 3)) << " SVSLOGIN " << uid << " * " << (!na->GetVhostIdent().empty() ? na->GetVhostIdent() : '*')
- << " " << (!na->GetVhostHost().empty() ? na->GetVhostHost() : '*') << " " << na->nc->display;
+
+ UplinkSocket::Message(Me) << "ENCAP " << (s ? s->GetName() : uid.substr(0, 3)) << " SVSLOGIN " << uid << " * "
+ << (na && !na->GetVhostIdent().empty() ? na->GetVhostIdent() : '*')
+ << " "
+ << (na && !na->GetVhostHost().empty() ? na->GetVhostHost() : '*')
+ << " "
+ << (na ? na->nc->display : "0");
}
};