aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_starttls.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-12-27 10:53:36 +0000
committerGravatar Sadie Powell2021-12-27 10:53:36 +0000
commitcdab76406fbeb6c74a403ea640b2209ea02eb86c (patch)
treebe099b1338e10d3144188c6f5fd60b11a4817e0f /src/modules/m_starttls.cpp
parentMake all extensibles use kebab-case for names where possible. (diff)
parentFix not being able to look up hostnames that point to multiple IPs. (diff)
Merge branch 'insp3' into master.
Diffstat (limited to 'src/modules/m_starttls.cpp')
-rw-r--r--src/modules/m_starttls.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/modules/m_starttls.cpp b/src/modules/m_starttls.cpp
index 590da9410..116f3e792 100644
--- a/src/modules/m_starttls.cpp
+++ b/src/modules/m_starttls.cpp
@@ -82,19 +82,43 @@ class CommandStartTLS final
}
};
+class TLSCap final
+ : public Cap::Capability
+{
+ private:
+ dynamic_reference_nocheck<IOHookProvider>& sslref;
+
+ bool OnList(LocalUser* user) override
+ {
+ return sslref;
+ }
+
+ bool OnRequest(LocalUser* user, bool adding) override
+ {
+ return sslref;
+ }
+
+ public:
+ TLSCap(Module* mod, dynamic_reference_nocheck<IOHookProvider>& ssl)
+ : Cap::Capability(mod, "tls")
+ , sslref(ssl)
+ {
+ }
+};
+
class ModuleStartTLS final
: public Module
{
private:
CommandStartTLS starttls;
- Cap::Capability tls;
+ TLSCap tls;
dynamic_reference_nocheck<IOHookProvider> ssl;
public:
ModuleStartTLS()
: Module(VF_VENDOR, "Provides the IRCv3 tls client capability.")
, starttls(this, ssl)
- , tls(this, "tls")
+ , tls(this, ssl)
, ssl(this, "ssl")
{
}