diff --git a/services/backup/blob_client/src/put_client.rs b/services/backup/blob_client/src/put_client.rs --- a/services/backup/blob_client/src/put_client.rs +++ b/services/backup/blob_client/src/put_client.rs @@ -237,9 +237,8 @@ holder_char: *const c_char, field_index: usize, data: *const c_char, -) -> Result<(), String> { - let holder = c_char_pointer_to_string(holder_char)?; - check_error(&ERROR_MESSAGES)?; +) -> anyhow::Result<(), anyhow::Error> { + let holder = c_char_pointer_to_string_new(holder_char)?; let data_c_str: &CStr = unsafe { CStr::from_ptr(data) }; let data_bytes: Vec = data_c_str.to_bytes().to_vec(); @@ -247,33 +246,20 @@ if let Ok(clients) = CLIENTS.lock() { let maybe_client = clients.get(&holder); if let Some(client) = maybe_client { - match client + client .tx .send(PutRequestData { field_index, data: data_bytes, }) - .await - { - Ok(_) => (), - Err(err) => report_error( - &ERROR_MESSAGES, - &format!("send data to receiver failed: {}", err), - Some("put"), - ), - } - } else { - report_error( - &ERROR_MESSAGES, - "no client detected in write", - Some("put"), - ); + .await?; + return Ok(()); } + bail!(format!("no client detected for {} in write", holder)); } else { - report_error(&ERROR_MESSAGES, "couldn't access client", Some("put")); + bail!("couldn't access clients"); } - }); - check_error(&ERROR_MESSAGES)?; + })?; Ok(()) }