#include "inspircd.h"
#include "modules/ssl.h"
+enum
+{
+ // From oftc-hybrid.
+ RPL_WHOISCERTFP = 276,
+
+ // From UnrealIRCd.
+ RPL_WHOISSECURE = 671
+};
+
class SSLCertExt : public ExtensionItem {
public:
SSLCertExt(Module* parent)
ssl_cert* cert = cmd.CertExt.get(whois.GetTarget());
if (cert)
{
- whois.SendLine(671, "is using a secure connection");
+ whois.SendLine(RPL_WHOISSECURE, "is using a secure connection");
bool operonlyfp = ServerInstance->Config->ConfValue("sslinfo")->getBool("operonly");
if ((!operonlyfp || whois.IsSelfWhois() || whois.GetSource()->IsOper()) && !cert->fingerprint.empty())
- whois.SendLine(276, InspIRCd::Format("has client certificate fingerprint %s", cert->fingerprint.c_str()));
+ whois.SendLine(RPL_WHOISCERTFP, InspIRCd::Format("has client certificate fingerprint %s", cert->fingerprint.c_str()));
}
}
if (myclass->config->getString("requiressl") == "trusted")
{
ok = (cert && cert->IsCAVerified());
+ ServerInstance->Logs->Log("CONNECTCLASS", LOG_DEBUG, "Class requires a trusted SSL cert. Client %s one.", (ok ? "has" : "does not have"));
}
else if (myclass->config->getBool("requiressl"))
{
ok = (cert != NULL);
+ ServerInstance->Logs->Log("CONNECTCLASS", LOG_DEBUG, "Class requires any SSL cert. Client %s one.", (ok ? "has" : "does not have"));
}
if (!ok)