From 66e0e0c9e37e8e77bce00bd9cfa34dcda2169f94 Mon Sep 17 00:00:00 2001 From: Steve3184 <77789906+Steve3184@users.noreply.github.com> Date: Sun, 1 Mar 2026 20:41:23 +0800 Subject: [PATCH] fix: only clear RESTORE_TOKEN when is_server_running() Signed-off-by: Steve3184 <77789906+Steve3184@users.noreply.github.com> --- libs/scrap/src/wayland/pipewire.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/scrap/src/wayland/pipewire.rs b/libs/scrap/src/wayland/pipewire.rs index 048969977..f91807efc 100644 --- a/libs/scrap/src/wayland/pipewire.rs +++ b/libs/scrap/src/wayland/pipewire.rs @@ -350,7 +350,9 @@ impl PipeWireRecorder { if is_revoked { warn!("[gstreamer] Failed to set PLAYING state, session was likely revoked: {:?}", e); - config::LocalConfig::set_option(RESTORE_TOKEN_CONF_KEY.to_owned(), "".to_owned()); + if is_server_running() { + config::LocalConfig::set_option(RESTORE_TOKEN_CONF_KEY.to_owned(), "".to_owned()); + } return Err(hbb_common::anyhow::Error::new(SessionRevokedError)); } else { warn!( @@ -383,7 +385,9 @@ impl PipeWireRecorder { if let Err(_) = result { warn!("[gstreamer] Async pipeline error detected. Session was likely terminated, clearing XDP token..."); - config::LocalConfig::set_option(RESTORE_TOKEN_CONF_KEY.to_owned(), "".to_owned()); + if is_server_running() { + config::LocalConfig::set_option(RESTORE_TOKEN_CONF_KEY.to_owned(), "".to_owned()); + } let _ = pipeline.set_state(gst::State::Null); return Err(hbb_common::anyhow::Error::new(SessionRevokedError)); }