From 78f9383332c48d4c9e851e2335ce7b953e43f809 Mon Sep 17 00:00:00 2001 From: bjoern Date: Fri, 10 Jun 2022 16:41:20 +0200 Subject: [PATCH] bubble up errors from update_param() and some related functions (#3415) * bubble up errors from update_param() and some related functions * log bubbled-up error in ffi --- deltachat-ffi/src/lib.rs | 3 ++- src/chat.rs | 10 +++++----- src/message.rs | 20 ++++++++++---------- src/webxdc.rs | 2 +- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index 4741ec240..c1f4287d3 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -3574,7 +3574,8 @@ pub unsafe extern "C" fn dc_msg_latefiling_mediasize( ffi_msg .message .latefiling_mediasize(ctx, width, height, duration) - }); + }) + .ok_or_log_msg(ctx, "Cannot set media size"); } #[no_mangle] diff --git a/src/chat.rs b/src/chat.rs index c4a3efbe2..6d1f5753c 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -1951,7 +1951,7 @@ pub async fn send_msg(context: &Context, chat_id: ChatId, msg: &mut Message) -> } } msg.param.remove(Param::PrepForwards); - msg.update_param(context).await; + msg.update_param(context).await?; } return send_msg_inner(context, chat_id, msg).await; } @@ -2120,7 +2120,7 @@ async fn create_send_msg_job(context: &Context, msg_id: MsgId) -> Result Result Result<()> { for mut msg in msgs { if msg.get_showpadlock() && !chat.is_protected() { msg.param.remove(Param::GuaranteeE2ee); - msg.update_param(context).await; + msg.update_param(context).await?; } match msg.get_state() { MessageState::OutFailed | MessageState::OutDelivered | MessageState::OutMdnRcvd => { diff --git a/src/message.rs b/src/message.rs index 92e74ffb3..7f1b6b598 100644 --- a/src/message.rs +++ b/src/message.rs @@ -23,7 +23,6 @@ use crate::download::DownloadState; use crate::ephemeral::{start_ephemeral_timers_msgids, Timer as EphemeralTimer}; use crate::events::EventType; use crate::imap::markseen_on_imap_table; -use crate::log::LogExt; use crate::mimeparser::{parse_message_id, FailureReport, SystemMessage}; use crate::param::{Param, Params}; use crate::pgp::split_armored_data; @@ -404,7 +403,7 @@ impl Message { } if !self.id.is_unset() { - self.update_param(context).await; + self.update_param(context).await?; } } } @@ -762,7 +761,7 @@ impl Message { width: i32, height: i32, duration: i32, - ) { + ) -> Result<()> { if width > 0 && height > 0 { self.param.set_int(Param::Width, width); self.param.set_int(Param::Height, height); @@ -770,7 +769,8 @@ impl Message { if duration > 0 { self.param.set_int(Param::Duration, duration); } - self.update_param(context).await; + self.update_param(context).await?; + Ok(()) } /// Sets message quote. @@ -850,26 +850,26 @@ impl Message { self.param.set_int(Param::ForcePlaintext, 1); } - pub async fn update_param(&self, context: &Context) { + pub async fn update_param(&self, context: &Context) -> Result<()> { context .sql .execute( "UPDATE msgs SET param=? WHERE id=?;", paramsv![self.param.to_string(), self.id], ) - .await - .ok_or_log(context); + .await?; + Ok(()) } - pub(crate) async fn update_subject(&self, context: &Context) { + pub(crate) async fn update_subject(&self, context: &Context) -> Result<()> { context .sql .execute( "UPDATE msgs SET subject=? WHERE id=?;", paramsv![self.subject, self.id], ) - .await - .ok_or_log(context); + .await?; + Ok(()) } /// Gets the error status of the message. diff --git a/src/webxdc.rs b/src/webxdc.rs index 5693d9671..6505eb86e 100644 --- a/src/webxdc.rs +++ b/src/webxdc.rs @@ -306,7 +306,7 @@ impl Context { } if param_changed { - instance.update_param(self).await; + instance.update_param(self).await?; self.emit_msgs_changed(instance.chat_id, instance.id); }