diff options
Diffstat (limited to 'modules/m_oper.c')
-rw-r--r-- | modules/m_oper.c | 10 |
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) |