inspircd

A modular C++ IRC daemon (ircd). https://www.inspircd.org/
Log | Files | Refs | README

commit 3bd512df63f7fa81fcdad57b22ea4fc79fe56097
parent 02beded762ccc71c7f87ec8bb32b8d614960ab90
Author: Peter Powell <petpow@saberuk.com>
Date:   Wed, 26 Jun 2019 19:02:51 +0100

Only show UHNAMES and NAMESX in 005 if the cap module is loaded.

The legacy method of enabling these extensions is just a wrapper
around the capability. If the cap module is not loaded it can not
be enabled so we should not advertise it.

Diffstat:
Msrc/modules/m_namesx.cpp | 5++++-
Msrc/modules/m_uhnames.cpp | 5++++-
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp @@ -48,7 +48,10 @@ class ModuleNamesX void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE { - tokens["NAMESX"]; + // The legacy PROTOCTL system is a wrapper around the cap. + dynamic_reference_nocheck<Cap::Manager> capmanager(this, "capmanager"); + if (capmanager) + tokens["NAMESX"]; } ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated) CXX11_OVERRIDE diff --git a/src/modules/m_uhnames.cpp b/src/modules/m_uhnames.cpp @@ -44,7 +44,10 @@ class ModuleUHNames void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE { - tokens["UHNAMES"]; + // The legacy PROTOCTL system is a wrapper around the cap. + dynamic_reference_nocheck<Cap::Manager> capmanager(this, "capmanager"); + if (capmanager) + tokens["UHNAMES"]; } ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated) CXX11_OVERRIDE