diff options
Diffstat (limited to 'src/users.cpp')
-rw-r--r-- | src/users.cpp | 17 |
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; |