From db3da52f83f1c0ed174e0b169b9908f6cb5b02c9 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Thu, 5 Feb 2026 17:15:59 +0800 Subject: [PATCH] [feat] clear cached fingerprint when verification fails --- src/gui/render_callback.cpp | 13 ++++++++++--- submodules/minirtc | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gui/render_callback.cpp b/src/gui/render_callback.cpp index 29c00e4..98058df 100644 --- a/src/gui/render_callback.cpp +++ b/src/gui/render_callback.cpp @@ -440,9 +440,9 @@ void Render::OnReceiveDataBufferCb(const char* data, size_t size, const double bps = (static_cast(delta_bytes) * 8.0) / delta_seconds; if (bps > 0.0) { - const double capped = - (std::min)(bps, static_cast( - (std::numeric_limits::max)())); + const double capped = (std::min)( + bps, + static_cast((std::numeric_limits::max)())); estimated_rate_bps = static_cast(capped); } } @@ -613,6 +613,10 @@ void Render::OnSignalStatusCb(SignalStatus status, const char* user_id, render->signal_connected_ = false; } else if (SignalStatus::SignalServerClosed == status) { render->signal_connected_ = false; + } else if (SignalStatus::SignalFingerprintMismatch == status) { + render->signal_connected_ = false; + LOG_ERROR("[{}] signal server fingerprint mismatch", client_id); + render->config_center_->ClearCertFingerprint(); } } else { if (client_id.rfind("C-", 0) != 0) { @@ -640,6 +644,9 @@ void Render::OnSignalStatusCb(SignalStatus status, const char* user_id, props->signal_connected_ = false; } else if (SignalStatus::SignalServerClosed == status) { props->signal_connected_ = false; + } else if (SignalStatus::SignalFingerprintMismatch == status) { + props->signal_connected_ = false; + LOG_ERROR("[{}] signal server fingerprint mismatch", remote_id); } } } diff --git a/submodules/minirtc b/submodules/minirtc index 36773cf..6ba4cfc 160000 --- a/submodules/minirtc +++ b/submodules/minirtc @@ -1 +1 @@ -Subproject commit 36773cfe207f21fb1c4692f04474891f4bcf76b7 +Subproject commit 6ba4cfc80e93f19995041e71b0c1f35d0a9d4167