update iroh-share & cleanup api

This commit is contained in:
dignifiedquire
2022-07-28 16:58:17 +02:00
parent 1633b2fd26
commit f696f3e485
6 changed files with 31 additions and 35 deletions

View File

@@ -2223,12 +2223,7 @@ pub unsafe extern "C" fn dc_send_backup(
block_on(async move {
imex::send_backup(ctx, folder.as_ref(), passphrase)
.await
.map(|(sender, transfer)| {
Box::into_raw(Box::new(dc_backup_sender {
_sender: sender,
transfer,
}))
})
.map(|transfer| Box::into_raw(Box::new(dc_backup_sender { transfer })))
.log_err(ctx, "send_backup failed")
.unwrap_or_else(|_| ptr::null_mut())
})
@@ -2239,7 +2234,6 @@ pub unsafe extern "C" fn dc_send_backup(
}
pub struct dc_backup_sender {
_sender: iroh_share::Sender,
transfer: iroh_share::SenderTransfer,
}
@@ -2263,10 +2257,19 @@ pub unsafe extern "C" fn dc_backup_sender_qr(
}
#[no_mangle]
pub unsafe extern "C" fn dc_backup_sender_unref(bs: *mut dc_backup_sender) {
if !bs.is_null() {
let _ = Box::from_raw(bs);
pub unsafe extern "C" fn dc_backup_sender_done(ctx: *mut dc_context_t, bs: *mut dc_backup_sender) {
if ctx.is_null() || bs.is_null() {
eprintln!("ignoring careless call to dc_backup_sender_wait");
return;
}
let ctx = &*ctx;
let bs = Box::from_raw(bs);
block_on(async move {
if let Err(e) = bs.transfer.done().await {
error!(ctx, "sending backup failed: {:?}", e);
}
});
}
#[no_mangle]