summaryrefslogtreecommitdiff
path: root/src/users.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/users.cpp')
-rw-r--r--src/users.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/users.cpp b/src/users.cpp
index 7761cb5c7..075f6c157 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -471,9 +471,20 @@ bool User::IsServicesOper()
return false;
else if (this->nc->o->require_oper && !this->HasMode("OPER"))
return false;
- else if (!this->nc->o->certfp.empty() && this->fingerprint != this->nc->o->certfp)
- // Certfp mismatch
- return false;
+ else if (!this->nc->o->certfp.empty())
+ {
+ bool match = false;
+ for (const auto &certfp : this->nc->o->certfp)
+ {
+ if (this->fingerprint == certfp)
+ {
+ match = true;
+ break;
+ }
+ }
+ if (!match)
+ return false;
+ }
else if (!this->nc->o->hosts.empty())
{
bool match = false;