Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Steel <nick@nsteel.co.uk>2023-04-24 00:16:40 +0300
committerkingosticks <nick@nsteel.co.uk>2023-04-24 17:29:22 +0300
commit3d01c9b363875d8558a2a3931682dcc5f87e5e86 (patch)
tree61e17d6e0c7121e7a61cacf18096bf31d135ca1a /audio/spotify
parent8d6751c88d8a11680f89c232cef94ac918010871 (diff)
spotify: check cached creds username before use
If a username was specified, only use cached credentials that match that username. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1192>
Diffstat (limited to 'audio/spotify')
-rw-r--r--audio/spotify/src/common.rs35
1 files changed, 25 insertions, 10 deletions
diff --git a/audio/spotify/src/common.rs b/audio/spotify/src/common.rs
index f373af655..4465cec82 100644
--- a/audio/spotify/src/common.rs
+++ b/audio/spotify/src/common.rs
@@ -132,16 +132,31 @@ impl Settings {
let cache = Cache::new(credentials_cache, None, files_cache, max_size)?;
if let Some(cached_cred) = cache.credentials() {
- gst::debug!(cat, obj: &src, "reuse credentials from cache",);
- if let Ok((session, _credentials)) = Session::connect(
- SessionConfig::default(),
- cached_cred,
- Some(cache.clone()),
- true,
- )
- .await
- {
- return Ok(session);
+ if !self.username.is_empty() && self.username != cached_cred.username {
+ gst::debug!(
+ cat,
+ obj: &src,
+ "ignore cached credentials for user {} which mismatch user {}",
+ cached_cred.username,
+ self.username
+ );
+ } else {
+ gst::debug!(
+ cat,
+ obj: &src,
+ "reuse cached credentials for user {}",
+ cached_cred.username
+ );
+ if let Ok((session, _credentials)) = Session::connect(
+ SessionConfig::default(),
+ cached_cred,
+ Some(cache.clone()),
+ true,
+ )
+ .await
+ {
+ return Ok(session);
+ }
}
}