From d5dead5f5cb90c2da5825614801c3dc710bbdfcf Mon Sep 17 00:00:00 2001 From: Dmitry Vinogradov Date: Thu, 16 Apr 2026 23:04:18 +0300 Subject: [PATCH] refactor: extract _extract_cn helper from check_tls --- rkn_checker/network.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/rkn_checker/network.py b/rkn_checker/network.py index d06ec00..f3d3b25 100644 --- a/rkn_checker/network.py +++ b/rkn_checker/network.py @@ -39,14 +39,7 @@ def check_tls( try: with socket.create_connection((host, port), timeout=timeout) as sock: with ctx.wrap_socket(sock, server_hostname=host) as ssock: - cert = ssock.getpeercert() - cn = None - if cert: - for tup in cert.get("subject", ()): - for k, v in tup: - if k == "commonName": - cn = v - break + cn = _extract_cn(ssock.getpeercert()) return True, (time.monotonic() - start) * 1000, cn, None except socket.timeout: return False, None, None, "timeout" @@ -56,3 +49,13 @@ def check_tls( return False, None, None, "connection reset during TLS" except OSError as e: return False, None, None, f"{type(e).__name__}: {e}" + + +def _extract_cn(cert: Optional[dict]) -> Optional[str]: + if not cert: + return None + for tup in cert.get("subject", ()): + for k, v in tup: + if k == "commonName": + return v + return None