aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_sslmodes.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2024-02-19 18:46:05 +0000
committerGravatar Sadie Powell2024-02-19 18:46:05 +0000
commitebd03383f856bfaa72b1700a96561396e6f8f6cc (patch)
tree47651f7a9c8567ae020c6b8750db58a7d3c2da2b /src/modules/m_sslmodes.cpp
parentFix more issues with the v3 compat layer. (diff)
Allow using multiple SSL fingerprint algorithms.
Closes #1804.
Diffstat (limited to 'src/modules/m_sslmodes.cpp')
-rw-r--r--src/modules/m_sslmodes.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/modules/m_sslmodes.cpp b/src/modules/m_sslmodes.cpp
index d5037b195..ff84b5845 100644
--- a/src/modules/m_sslmodes.cpp
+++ b/src/modules/m_sslmodes.cpp
@@ -56,8 +56,15 @@ public:
bool IsMatch(User* user, Channel* channel, const std::string& text) override
{
- const std::string fp = sslapi ? sslapi->GetFingerprint(user) : "";
- return !fp.empty() && InspIRCd::Match(fp, text);
+ if (!sslapi)
+ return false;
+
+ for (const auto& fingerprint : sslapi->GetFingerprints(user))
+ {
+ if (InspIRCd::Match(fingerprint, text))
+ return true;
+ }
+ return false;
}
};