diff options
Diffstat (limited to 'modules/protocol/hybrid.cpp')
-rw-r--r-- | modules/protocol/hybrid.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/protocol/hybrid.cpp b/modules/protocol/hybrid.cpp index f4254edf4..997513f7e 100644 --- a/modules/protocol/hybrid.cpp +++ b/modules/protocol/hybrid.cpp @@ -26,6 +26,7 @@ class HybridProto : public IRCDProto CanSZLine = true; CanSVSHold = true; CanCertFP = true; + CanSetVHost = true; RequiresID = true; MaxModes = 4; } @@ -260,6 +261,16 @@ class HybridProto : public IRCDProto this->SendSQLineDel(&x); } + void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) anope_override + { + u->SetMode(Config->GetClient("HostServ"), "CLOAK", host); + } + + void SendVhostDel(User *u) anope_override + { + u->RemoveMode(Config->GetClient("HostServ"), "CLOAK", u->host); + } + bool IsIdentValid(const Anope::string &ident) anope_override { if (ident.empty() || ident.length() > Config->GetBlock("networkinfo")->Get<unsigned>("userlen")) @@ -603,6 +614,7 @@ class ProtoHybrid : public Module ModeManager::AddUserMode(new UserModeOperOnly("HIDEOPER", 'H')); ModeManager::AddUserMode(new UserMode("REGPRIV", 'R')); ModeManager::AddUserMode(new UserModeNoone("SSL", 'S')); + ModeManager::AddUserMode(new UserMode("CLOAK", 'x')); /* b/e/I */ ModeManager::AddChannelMode(new ChannelModeList("BAN", 'b')); |