diff options
| author | 2025-11-01 12:28:27 +0000 | |
|---|---|---|
| committer | 2025-11-01 12:28:27 +0000 | |
| commit | bfe493af8aef1b5c37c328e27af0f57925d864aa (patch) | |
| tree | a50a00d5dca0b92c8464fe62811fb841c5b28db7 /src | |
| parent | Improve the error logging when opering up with a TLS fingerprint. (diff) | |
Expose the ssl_cert flags in SSLINFO.
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/m_sslinfo.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp index 428083fc1..7d00fe261 100644 --- a/src/modules/m_sslinfo.cpp +++ b/src/modules/m_sslinfo.cpp @@ -65,6 +65,17 @@ public: Delete(user, UnsetRaw(user)); } + static std::string GetFlags(const ssl_cert* cert) + { + std::string ret; + ret.push_back(cert->IsInvalid() ? 'v' : 'V'); + ret.push_back(cert->IsTrusted() ? 'T' : 't'); + ret.push_back(cert->IsRevoked() ? 'R' : 'r'); + ret.push_back(cert->IsUnknownSigner() ? 's' : 'S'); + ret.push_back(cert->GetError().empty() ? 'e' : 'E'); + return ret; + } + std::string ToInternal(const Extensible* container, void* item) const noexcept override { return ToNetwork(container, item); @@ -74,13 +85,7 @@ public: { const ssl_cert* cert = static_cast<ssl_cert*>(item); std::stringstream value; - value - << (cert->IsInvalid() ? "v" : "V") - << (cert->IsTrusted() ? "T" : "t") - << (cert->IsRevoked() ? "R" : "r") - << (cert->IsUnknownSigner() ? "s" : "S") - << (cert->GetError().empty() ? "e" : "E") - << " "; + value << GetFlags(cert) << " "; if (cert->GetError().empty()) value << insp::join(cert->GetFingerprints(), ',') << " " << cert->GetDN() << " " << cert->GetIssuer(); @@ -218,6 +223,7 @@ private: } else { + source->WriteNotice("*** Flags: " + SSLCertExt::GetFlags(cert)); source->WriteNotice("*** Distinguished Name: " + cert->GetDN()); source->WriteNotice("*** Issuer: " + cert->GetIssuer()); for (const auto& fingerprint : cert->GetFingerprints()) |
