summaryrefslogtreecommitdiff
path: root/modules/m_oper.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/m_oper.c')
-rw-r--r--modules/m_oper.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/m_oper.c b/modules/m_oper.c
index ea26190..52d4033 100644
--- a/modules/m_oper.c
+++ b/modules/m_oper.c
@@ -95,6 +95,16 @@ m_oper(struct Client *client_p, struct Client *source_p,
return;
}
+ if (!EmptyString(conf->certfp))
+ {
+ if (EmptyString(source_p->certfp) || strcasecmp(source_p->certfp, conf->certfp))
+ {
+ sendto_one(source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name);
+ failed_oper_notice(source_p, name, "client certificate fingerprint mismatch");
+ return;
+ }
+ }
+
if (match_conf_password(password, conf))
{
if (attach_conf(source_p, conf) != 0)