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; } }