From 3b7b368e13a049275160bcba43001369dc420f9e Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Wed, 12 Nov 2025 08:14:16 +0100 Subject: [PATCH] Attempt to fix session restoration issues --- .../src/matrix_connection/matrix_client.rs | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/matrixgw_backend/src/matrix_connection/matrix_client.rs b/matrixgw_backend/src/matrix_connection/matrix_client.rs index fa44e3d..e2b636b 100644 --- a/matrixgw_backend/src/matrix_connection/matrix_client.rs +++ b/matrixgw_backend/src/matrix_connection/matrix_client.rs @@ -130,14 +130,14 @@ impl MatrixClient { }; // Check metadata - let oauth = client.client.oauth(); - let server_metadata = oauth - .server_metadata() - .await - .map_err(MatrixClientError::FetchServerMetadata)?; - log::info!("OAuth2 server issuer: {:?}", server_metadata.issuer); - - if is_restoring { + if !is_restoring { + let oauth = client.client.oauth(); + let server_metadata = oauth + .server_metadata() + .await + .map_err(MatrixClientError::FetchServerMetadata)?; + log::info!("OAuth2 server issuer: {:?}", server_metadata.issuer); + } else { let session: StoredSession = serde_json::from_str( std::fs::read_to_string(session_file_path) .map_err(MatrixClientError::LoadStoredSession)? @@ -292,20 +292,15 @@ impl MatrixClient { async fn save_stored_session(&self) -> anyhow::Result<()> { log::debug!("Save the stored session for {:?}...", self.email); - let user_session: UserSession = self + let full_session = self .client .oauth() - .user_session() + .full_session() .context("A logged in client must have a session")?; let stored_session = StoredSession { - user_session, - client_id: self - .client - .oauth() - .client_id() - .context("Client ID should be set at this point!")? - .clone(), + user_session: full_session.user, + client_id: full_session.client_id, }; let serialized_session = serde_json::to_string(&stored_session)?;