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)?;