From a8d343ce3a3f4fdb8ecde29d493261176e9368c8 Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 1 Jan 2024 21:32:32 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Use=20of=20the=20token=20r?= =?UTF-8?q?eturned=20by=20the=20first=20sync=20with=20the=20homeserver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/base.rs | 5 +++-- src/matrix_interface/client.rs | 17 ++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/base.rs b/src/base.rs index 6a13266..03991ec 100644 --- a/src/base.rs +++ b/src/base.rs @@ -212,8 +212,9 @@ pub async fn login( if homeserver_url.is_some() && username.is_some() && password.is_some() { let client = Client::spawn(homeserver_url.unwrap()).await; - // TODO: Handle error case. - let _ = client.init().await; + if let Err(err) = client.init().await { + error!("Following error occureds during client init: {}", err); + } match client .login(LoginStyle::Password(username.unwrap(), password.unwrap())) diff --git a/src/matrix_interface/client.rs b/src/matrix_interface/client.rs index ac3a7d3..0a5afbe 100644 --- a/src/matrix_interface/client.rs +++ b/src/matrix_interface/client.rs @@ -367,16 +367,19 @@ impl Client { self.sync_handle = tokio::spawn({ async move { // Sync once so we receive the client state and old messages - let _ = client.sync_once(SyncSettings::default()).await; + let sync_token_option = match client.sync_once(SyncSettings::default()).await { + Ok(sync_response) => Some(sync_response.next_batch), + Err(err) => { + error!("Error during sync one: {}", err); + None + } + }; - debug!("User connected to the homeserver"); + if let Some(sync_token) = sync_token_option { + let settings = SyncSettings::default().token(sync_token); - // if let Err(err) = synchronized_tx.send(true) { - // warn!("Unable to notify that the Matrix client is now synchronized ({err})"); - // } + debug!("User connected to the homeserver, start syncing"); - loop { - let settings = SyncSettings::default(); let _ = client.sync(settings).await; } }