mirror of
https://github.com/chatmail/core.git
synced 2026-05-16 13:26:38 +03:00
Fix clippy warnings in deltachat-ffi
This commit is contained in:
@@ -30,6 +30,6 @@ fn main() {
|
|||||||
fs::create_dir_all(target_path.join("pkgconfig")).unwrap();
|
fs::create_dir_all(target_path.join("pkgconfig")).unwrap();
|
||||||
fs::File::create(target_path.join("pkgconfig").join("deltachat.pc"))
|
fs::File::create(target_path.join("pkgconfig").join("deltachat.pc"))
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.write_all(&pkg_config.as_bytes())
|
.write_all(pkg_config.as_bytes())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ pub unsafe extern "C" fn dc_set_config_from_qr(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match qr::set_config_from_qr(&ctx, &qr).await {
|
match qr::set_config_from_qr(ctx, &qr).await {
|
||||||
Ok(()) => 1,
|
Ok(()) => 1,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
error!(ctx, "Failed to create account from QR code: {}", err);
|
error!(ctx, "Failed to create account from QR code: {}", err);
|
||||||
@@ -303,7 +303,7 @@ pub unsafe extern "C" fn dc_get_oauth2_url(
|
|||||||
let redirect = to_string_lossy(redirect);
|
let redirect = to_string_lossy(redirect);
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match oauth2::dc_get_oauth2_url(&ctx, &addr, &redirect).await {
|
match oauth2::dc_get_oauth2_url(ctx, &addr, &redirect).await {
|
||||||
Some(res) => res.strdup(),
|
Some(res) => res.strdup(),
|
||||||
None => ptr::null_mut(),
|
None => ptr::null_mut(),
|
||||||
}
|
}
|
||||||
@@ -608,7 +608,7 @@ pub unsafe extern "C" fn dc_preconfigure_keypair(
|
|||||||
public,
|
public,
|
||||||
secret,
|
secret,
|
||||||
};
|
};
|
||||||
key::store_self_keypair(&ctx, &keypair, key::KeyPairUse::Default).await?;
|
key::store_self_keypair(ctx, &keypair, key::KeyPairUse::Default).await?;
|
||||||
Ok::<_, anyhow::Error>(1)
|
Ok::<_, anyhow::Error>(1)
|
||||||
})
|
})
|
||||||
.log_err(ctx, "Failed to save keypair")
|
.log_err(ctx, "Failed to save keypair")
|
||||||
@@ -632,7 +632,7 @@ pub unsafe extern "C" fn dc_get_chatlist(
|
|||||||
let qi = if query_id == 0 { None } else { Some(query_id) };
|
let qi = if query_id == 0 { None } else { Some(query_id) };
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match chatlist::Chatlist::try_load(&ctx, flags as usize, qs.as_deref(), qi).await {
|
match chatlist::Chatlist::try_load(ctx, flags as usize, qs.as_deref(), qi).await {
|
||||||
Ok(list) => {
|
Ok(list) => {
|
||||||
let ffi_list = ChatlistWrapper { context, list };
|
let ffi_list = ChatlistWrapper { context, list };
|
||||||
Box::into_raw(Box::new(ffi_list))
|
Box::into_raw(Box::new(ffi_list))
|
||||||
@@ -654,7 +654,7 @@ pub unsafe extern "C" fn dc_create_chat_by_contact_id(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::create_for_contact(&ctx, contact_id)
|
ChatId::create_for_contact(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed to create chat from contact_id")
|
.log_err(ctx, "Failed to create chat from contact_id")
|
||||||
.map(|id| id.to_u32())
|
.map(|id| id.to_u32())
|
||||||
@@ -674,7 +674,7 @@ pub unsafe extern "C" fn dc_get_chat_id_by_contact_id(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::lookup_by_contact(&ctx, contact_id)
|
ChatId::lookup_by_contact(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed to get chat for contact_id")
|
.log_err(ctx, "Failed to get chat for contact_id")
|
||||||
.unwrap_or_default() // unwraps the Result
|
.unwrap_or_default() // unwraps the Result
|
||||||
@@ -697,9 +697,9 @@ pub unsafe extern "C" fn dc_prepare_msg(
|
|||||||
let ffi_msg: &mut MessageWrapper = &mut *msg;
|
let ffi_msg: &mut MessageWrapper = &mut *msg;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::prepare_msg(&ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
chat::prepare_msg(ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(&ctx, "Failed to prepare message")
|
.unwrap_or_log_default(ctx, "Failed to prepare message")
|
||||||
})
|
})
|
||||||
.to_u32()
|
.to_u32()
|
||||||
}
|
}
|
||||||
@@ -718,9 +718,9 @@ pub unsafe extern "C" fn dc_send_msg(
|
|||||||
let ffi_msg = &mut *msg;
|
let ffi_msg = &mut *msg;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::send_msg(&ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
chat::send_msg(ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(&ctx, "Failed to send message")
|
.unwrap_or_log_default(ctx, "Failed to send message")
|
||||||
})
|
})
|
||||||
.to_u32()
|
.to_u32()
|
||||||
}
|
}
|
||||||
@@ -739,9 +739,9 @@ pub unsafe extern "C" fn dc_send_msg_sync(
|
|||||||
let ffi_msg = &mut *msg;
|
let ffi_msg = &mut *msg;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::send_msg_sync(&ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
chat::send_msg_sync(ctx, ChatId::new(chat_id), &mut ffi_msg.message)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(&ctx, "Failed to send message")
|
.unwrap_or_log_default(ctx, "Failed to send message")
|
||||||
})
|
})
|
||||||
.to_u32()
|
.to_u32()
|
||||||
}
|
}
|
||||||
@@ -760,10 +760,10 @@ pub unsafe extern "C" fn dc_send_text_msg(
|
|||||||
let text_to_send = to_string_lossy(text_to_send);
|
let text_to_send = to_string_lossy(text_to_send);
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::send_text_msg(&ctx, ChatId::new(chat_id), text_to_send)
|
chat::send_text_msg(ctx, ChatId::new(chat_id), text_to_send)
|
||||||
.await
|
.await
|
||||||
.map(|msg_id| msg_id.to_u32())
|
.map(|msg_id| msg_id.to_u32())
|
||||||
.unwrap_or_log_default(&ctx, "Failed to send text message")
|
.unwrap_or_log_default(ctx, "Failed to send text message")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -779,10 +779,10 @@ pub unsafe extern "C" fn dc_send_videochat_invitation(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::send_videochat_invitation(&ctx, ChatId::new(chat_id))
|
chat::send_videochat_invitation(ctx, ChatId::new(chat_id))
|
||||||
.await
|
.await
|
||||||
.map(|msg_id| msg_id.to_u32())
|
.map(|msg_id| msg_id.to_u32())
|
||||||
.unwrap_or_log_default(&ctx, "Failed to send video chat invitation")
|
.unwrap_or_log_default(ctx, "Failed to send video chat invitation")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -806,7 +806,7 @@ pub unsafe extern "C" fn dc_set_draft(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.set_draft(&ctx, msg)
|
.set_draft(ctx, msg)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to set draft");
|
.unwrap_or_log_default(ctx, "failed to set draft");
|
||||||
});
|
});
|
||||||
@@ -831,9 +831,9 @@ pub unsafe extern "C" fn dc_add_device_msg(
|
|||||||
};
|
};
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::add_device_msg(&ctx, to_opt_string_lossy(label).as_deref(), msg)
|
chat::add_device_msg(ctx, to_opt_string_lossy(label).as_deref(), msg)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(&ctx, "Failed to add device message")
|
.unwrap_or_log_default(ctx, "Failed to add device message")
|
||||||
})
|
})
|
||||||
.to_u32()
|
.to_u32()
|
||||||
}
|
}
|
||||||
@@ -850,7 +850,7 @@ pub unsafe extern "C" fn dc_was_device_msg_ever_added(
|
|||||||
let ctx = &mut *context;
|
let ctx = &mut *context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::was_device_msg_ever_added(&ctx, &to_string_lossy(label))
|
chat::was_device_msg_ever_added(ctx, &to_string_lossy(label))
|
||||||
.await
|
.await
|
||||||
.unwrap_or(false) as libc::c_int
|
.unwrap_or(false) as libc::c_int
|
||||||
})
|
})
|
||||||
@@ -865,7 +865,7 @@ pub unsafe extern "C" fn dc_get_draft(context: *mut dc_context_t, chat_id: u32)
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match ChatId::new(chat_id).get_draft(&ctx).await {
|
match ChatId::new(chat_id).get_draft(ctx).await {
|
||||||
Ok(Some(draft)) => {
|
Ok(Some(draft)) => {
|
||||||
let ffi_msg = MessageWrapper {
|
let ffi_msg = MessageWrapper {
|
||||||
context,
|
context,
|
||||||
@@ -902,7 +902,7 @@ pub unsafe extern "C" fn dc_get_chat_msgs(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Box::into_raw(Box::new(
|
Box::into_raw(Box::new(
|
||||||
chat::get_chat_msgs(&ctx, ChatId::new(chat_id), flags, marker_flag)
|
chat::get_chat_msgs(ctx, ChatId::new(chat_id), flags, marker_flag)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get chat msgs")
|
.unwrap_or_log_default(ctx, "failed to get chat msgs")
|
||||||
.into(),
|
.into(),
|
||||||
@@ -920,7 +920,7 @@ pub unsafe extern "C" fn dc_get_msg_cnt(context: *mut dc_context_t, chat_id: u32
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.get_msg_cnt(&ctx)
|
.get_msg_cnt(ctx)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get msg count") as libc::c_int
|
.unwrap_or_log_default(ctx, "failed to get msg count") as libc::c_int
|
||||||
})
|
})
|
||||||
@@ -939,7 +939,7 @@ pub unsafe extern "C" fn dc_get_fresh_msg_cnt(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.get_fresh_msg_cnt(&ctx)
|
.get_fresh_msg_cnt(ctx)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get fresh msg cnt") as libc::c_int
|
.unwrap_or_log_default(ctx, "failed to get fresh msg cnt") as libc::c_int
|
||||||
})
|
})
|
||||||
@@ -996,7 +996,7 @@ pub unsafe extern "C" fn dc_marknoticed_chat(context: *mut dc_context_t, chat_id
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::marknoticed_chat(&ctx, ChatId::new(chat_id))
|
chat::marknoticed_chat(ctx, ChatId::new(chat_id))
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed marknoticed chat")
|
.log_err(ctx, "Failed marknoticed chat")
|
||||||
.unwrap_or(())
|
.unwrap_or(())
|
||||||
@@ -1033,7 +1033,7 @@ pub unsafe extern "C" fn dc_get_chat_media(
|
|||||||
block_on(async move {
|
block_on(async move {
|
||||||
Box::into_raw(Box::new(
|
Box::into_raw(Box::new(
|
||||||
chat::get_chat_media(
|
chat::get_chat_media(
|
||||||
&ctx,
|
ctx,
|
||||||
ChatId::new(chat_id),
|
ChatId::new(chat_id),
|
||||||
msg_type,
|
msg_type,
|
||||||
or_msg_type2,
|
or_msg_type2,
|
||||||
@@ -1074,7 +1074,7 @@ pub unsafe extern "C" fn dc_get_next_media(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::get_next_media(
|
chat::get_next_media(
|
||||||
&ctx,
|
ctx,
|
||||||
MsgId::new(msg_id),
|
MsgId::new(msg_id),
|
||||||
direction,
|
direction,
|
||||||
msg_type,
|
msg_type,
|
||||||
@@ -1106,7 +1106,7 @@ pub unsafe extern "C" fn dc_set_chat_protection(
|
|||||||
};
|
};
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match ChatId::new(chat_id).set_protection(&ctx, protect).await {
|
match ChatId::new(chat_id).set_protection(ctx, protect).await {
|
||||||
Ok(()) => 1,
|
Ok(()) => 1,
|
||||||
Err(_) => 0,
|
Err(_) => 0,
|
||||||
}
|
}
|
||||||
@@ -1139,7 +1139,7 @@ pub unsafe extern "C" fn dc_set_chat_visibility(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.set_visibility(&ctx, visibility)
|
.set_visibility(ctx, visibility)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed setting chat visibility")
|
.log_err(ctx, "Failed setting chat visibility")
|
||||||
.unwrap_or(())
|
.unwrap_or(())
|
||||||
@@ -1156,7 +1156,7 @@ pub unsafe extern "C" fn dc_delete_chat(context: *mut dc_context_t, chat_id: u32
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.delete(&ctx)
|
.delete(ctx)
|
||||||
.await
|
.await
|
||||||
.ok_or_log_msg(ctx, "Failed chat delete");
|
.ok_or_log_msg(ctx, "Failed chat delete");
|
||||||
})
|
})
|
||||||
@@ -1172,7 +1172,7 @@ pub unsafe extern "C" fn dc_block_chat(context: *mut dc_context_t, chat_id: u32)
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.block(&ctx)
|
.block(ctx)
|
||||||
.await
|
.await
|
||||||
.ok_or_log_msg(ctx, "Failed chat block");
|
.ok_or_log_msg(ctx, "Failed chat block");
|
||||||
})
|
})
|
||||||
@@ -1188,7 +1188,7 @@ pub unsafe extern "C" fn dc_accept_chat(context: *mut dc_context_t, chat_id: u32
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.accept(&ctx)
|
.accept(ctx)
|
||||||
.await
|
.await
|
||||||
.ok_or_log_msg(ctx, "Failed chat accept");
|
.ok_or_log_msg(ctx, "Failed chat accept");
|
||||||
})
|
})
|
||||||
@@ -1207,7 +1207,7 @@ pub unsafe extern "C" fn dc_get_chat_contacts(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let arr = dc_array_t::from(
|
let arr = dc_array_t::from(
|
||||||
chat::get_chat_contacts(&ctx, ChatId::new(chat_id))
|
chat::get_chat_contacts(ctx, ChatId::new(chat_id))
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "Failed get_chat_contacts"),
|
.unwrap_or_log_default(ctx, "Failed get_chat_contacts"),
|
||||||
);
|
);
|
||||||
@@ -1254,7 +1254,7 @@ pub unsafe extern "C" fn dc_get_chat(context: *mut dc_context_t, chat_id: u32) -
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match chat::Chat::load_from_db(&ctx, ChatId::new(chat_id)).await {
|
match chat::Chat::load_from_db(ctx, ChatId::new(chat_id)).await {
|
||||||
Ok(chat) => {
|
Ok(chat) => {
|
||||||
let ffi_chat = ChatWrapper { context, chat };
|
let ffi_chat = ChatWrapper { context, chat };
|
||||||
Box::into_raw(Box::new(ffi_chat))
|
Box::into_raw(Box::new(ffi_chat))
|
||||||
@@ -1283,7 +1283,7 @@ pub unsafe extern "C" fn dc_create_group_chat(
|
|||||||
};
|
};
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::create_group_chat(&ctx, protect, &to_string_lossy(name))
|
chat::create_group_chat(ctx, protect, &to_string_lossy(name))
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed to create group chat")
|
.log_err(ctx, "Failed to create group chat")
|
||||||
.map(|id| id.to_u32())
|
.map(|id| id.to_u32())
|
||||||
@@ -1303,7 +1303,7 @@ pub unsafe extern "C" fn dc_is_contact_in_chat(
|
|||||||
}
|
}
|
||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move { chat::is_contact_in_chat(&ctx, ChatId::new(chat_id), contact_id).await })
|
block_on(async move { chat::is_contact_in_chat(ctx, ChatId::new(chat_id), contact_id).await })
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1320,7 +1320,7 @@ pub unsafe extern "C" fn dc_add_contact_to_chat(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::add_contact_to_chat(&ctx, ChatId::new(chat_id), contact_id).await as libc::c_int
|
chat::add_contact_to_chat(ctx, ChatId::new(chat_id), contact_id).await as libc::c_int
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1337,10 +1337,10 @@ pub unsafe extern "C" fn dc_remove_contact_from_chat(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::remove_contact_from_chat(&ctx, ChatId::new(chat_id), contact_id)
|
chat::remove_contact_from_chat(ctx, ChatId::new(chat_id), contact_id)
|
||||||
.await
|
.await
|
||||||
.map(|_| 1)
|
.map(|_| 1)
|
||||||
.unwrap_or_log_default(&ctx, "Failed to remove contact")
|
.unwrap_or_log_default(ctx, "Failed to remove contact")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1358,10 +1358,10 @@ pub unsafe extern "C" fn dc_set_chat_name(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::set_chat_name(&ctx, ChatId::new(chat_id), &to_string_lossy(name))
|
chat::set_chat_name(ctx, ChatId::new(chat_id), &to_string_lossy(name))
|
||||||
.await
|
.await
|
||||||
.map(|_| 1)
|
.map(|_| 1)
|
||||||
.unwrap_or_log_default(&ctx, "Failed to set chat name")
|
.unwrap_or_log_default(ctx, "Failed to set chat name")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1378,10 +1378,10 @@ pub unsafe extern "C" fn dc_set_chat_profile_image(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::set_chat_profile_image(&ctx, ChatId::new(chat_id), to_string_lossy(image))
|
chat::set_chat_profile_image(ctx, ChatId::new(chat_id), to_string_lossy(image))
|
||||||
.await
|
.await
|
||||||
.map(|_| 1)
|
.map(|_| 1)
|
||||||
.unwrap_or_log_default(&ctx, "Failed to set profile image")
|
.unwrap_or_log_default(ctx, "Failed to set profile image")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1412,10 +1412,10 @@ pub unsafe extern "C" fn dc_set_chat_mute_duration(
|
|||||||
};
|
};
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::set_muted(&ctx, ChatId::new(chat_id), muteDuration)
|
chat::set_muted(ctx, ChatId::new(chat_id), muteDuration)
|
||||||
.await
|
.await
|
||||||
.map(|_| 1)
|
.map(|_| 1)
|
||||||
.unwrap_or_log_default(&ctx, "Failed to set mute duration")
|
.unwrap_or_log_default(ctx, "Failed to set mute duration")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1432,11 +1432,11 @@ pub unsafe extern "C" fn dc_get_chat_encrinfo(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
ChatId::new(chat_id)
|
ChatId::new(chat_id)
|
||||||
.get_encryption_info(&ctx)
|
.get_encryption_info(ctx)
|
||||||
.await
|
.await
|
||||||
.map(|s| s.strdup())
|
.map(|s| s.strdup())
|
||||||
.unwrap_or_else(|e| {
|
.unwrap_or_else(|e| {
|
||||||
error!(&ctx, "{}", e);
|
error!(ctx, "{}", e);
|
||||||
ptr::null_mut()
|
ptr::null_mut()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -1497,7 +1497,7 @@ pub unsafe extern "C" fn dc_get_msg_info(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
message::get_msg_info(&ctx, MsgId::new(msg_id))
|
message::get_msg_info(ctx, MsgId::new(msg_id))
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get msg id")
|
.unwrap_or_log_default(ctx, "failed to get msg id")
|
||||||
.strdup()
|
.strdup()
|
||||||
@@ -1515,7 +1515,7 @@ pub unsafe extern "C" fn dc_get_msg_html(
|
|||||||
}
|
}
|
||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(MsgId::new(msg_id).get_html(&ctx))
|
block_on(MsgId::new(msg_id).get_html(ctx))
|
||||||
.unwrap_or_log_default(ctx, "Failed get_msg_html")
|
.unwrap_or_log_default(ctx, "Failed get_msg_html")
|
||||||
.strdup()
|
.strdup()
|
||||||
}
|
}
|
||||||
@@ -1532,7 +1532,7 @@ pub unsafe extern "C" fn dc_get_mime_headers(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let mime = message::get_mime_headers(&ctx, MsgId::new(msg_id))
|
let mime = message::get_mime_headers(ctx, MsgId::new(msg_id))
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get mime headers");
|
.unwrap_or_log_default(ctx, "failed to get mime headers");
|
||||||
if mime.is_empty() {
|
if mime.is_empty() {
|
||||||
@@ -1555,7 +1555,7 @@ pub unsafe extern "C" fn dc_delete_msgs(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
let msg_ids = convert_and_prune_message_ids(msg_ids, msg_cnt);
|
let msg_ids = convert_and_prune_message_ids(msg_ids, msg_cnt);
|
||||||
|
|
||||||
block_on(message::delete_msgs(&ctx, &msg_ids))
|
block_on(message::delete_msgs(ctx, &msg_ids))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -1577,9 +1577,9 @@ pub unsafe extern "C" fn dc_forward_msgs(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
chat::forward_msgs(&ctx, &msg_ids[..], ChatId::new(chat_id))
|
chat::forward_msgs(ctx, &msg_ids[..], ChatId::new(chat_id))
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(&ctx, "Failed to forward message")
|
.unwrap_or_log_default(ctx, "Failed to forward message")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1596,7 +1596,7 @@ pub unsafe extern "C" fn dc_markseen_msgs(
|
|||||||
let msg_ids = convert_and_prune_message_ids(msg_ids, msg_cnt);
|
let msg_ids = convert_and_prune_message_ids(msg_ids, msg_cnt);
|
||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(message::markseen_msgs(&ctx, msg_ids))
|
block_on(message::markseen_msgs(ctx, msg_ids))
|
||||||
.log_err(ctx, "failed dc_markseen_msgs() call")
|
.log_err(ctx, "failed dc_markseen_msgs() call")
|
||||||
.ok();
|
.ok();
|
||||||
}
|
}
|
||||||
@@ -1610,19 +1610,19 @@ pub unsafe extern "C" fn dc_get_msg(context: *mut dc_context_t, msg_id: u32) ->
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let message = match message::Message::load_from_db(&ctx, MsgId::new(msg_id)).await {
|
let message = match message::Message::load_from_db(ctx, MsgId::new(msg_id)).await {
|
||||||
Ok(msg) => msg,
|
Ok(msg) => msg,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
if msg_id <= constants::DC_MSG_ID_LAST_SPECIAL {
|
if msg_id <= constants::DC_MSG_ID_LAST_SPECIAL {
|
||||||
// C-core API returns empty messages, do the same
|
// C-core API returns empty messages, do the same
|
||||||
warn!(
|
warn!(
|
||||||
&ctx,
|
ctx,
|
||||||
"dc_get_msg called with special msg_id={}, returning empty msg", msg_id
|
"dc_get_msg called with special msg_id={}, returning empty msg", msg_id
|
||||||
);
|
);
|
||||||
message::Message::default()
|
message::Message::default()
|
||||||
} else {
|
} else {
|
||||||
error!(
|
error!(
|
||||||
&ctx,
|
ctx,
|
||||||
"dc_get_msg could not retrieve msg_id {}: {}", msg_id, e
|
"dc_get_msg could not retrieve msg_id {}: {}", msg_id, e
|
||||||
);
|
);
|
||||||
return ptr::null_mut();
|
return ptr::null_mut();
|
||||||
@@ -1656,7 +1656,7 @@ pub unsafe extern "C" fn dc_lookup_contact_id_by_addr(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Contact::lookup_id_by_addr(&ctx, to_string_lossy(addr), Origin::IncomingReplyTo)
|
Contact::lookup_id_by_addr(ctx, to_string_lossy(addr), Origin::IncomingReplyTo)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to lookup id")
|
.unwrap_or_log_default(ctx, "failed to lookup id")
|
||||||
.unwrap_or(0)
|
.unwrap_or(0)
|
||||||
@@ -1677,7 +1677,7 @@ pub unsafe extern "C" fn dc_create_contact(
|
|||||||
let name = to_string_lossy(name);
|
let name = to_string_lossy(name);
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Contact::create(&ctx, &name, &to_string_lossy(addr))
|
Contact::create(ctx, &name, &to_string_lossy(addr))
|
||||||
.await
|
.await
|
||||||
.unwrap_or(0)
|
.unwrap_or(0)
|
||||||
})
|
})
|
||||||
@@ -1695,7 +1695,7 @@ pub unsafe extern "C" fn dc_add_address_book(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match Contact::add_address_book(&ctx, &to_string_lossy(addr_book)).await {
|
match Contact::add_address_book(ctx, &to_string_lossy(addr_book)).await {
|
||||||
Ok(cnt) => cnt as libc::c_int,
|
Ok(cnt) => cnt as libc::c_int,
|
||||||
Err(_) => 0,
|
Err(_) => 0,
|
||||||
}
|
}
|
||||||
@@ -1716,7 +1716,7 @@ pub unsafe extern "C" fn dc_get_contacts(
|
|||||||
let query = to_opt_string_lossy(query);
|
let query = to_opt_string_lossy(query);
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match Contact::get_all(&ctx, flags, query).await {
|
match Contact::get_all(ctx, flags, query).await {
|
||||||
Ok(contacts) => Box::into_raw(Box::new(dc_array_t::from(contacts))),
|
Ok(contacts) => Box::into_raw(Box::new(dc_array_t::from(contacts))),
|
||||||
Err(_) => ptr::null_mut(),
|
Err(_) => ptr::null_mut(),
|
||||||
}
|
}
|
||||||
@@ -1732,7 +1732,7 @@ pub unsafe extern "C" fn dc_get_blocked_cnt(context: *mut dc_context_t) -> libc:
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Contact::get_all_blocked(&ctx)
|
Contact::get_all_blocked(ctx)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get blocked count")
|
.unwrap_or_log_default(ctx, "failed to get blocked count")
|
||||||
.len() as libc::c_int
|
.len() as libc::c_int
|
||||||
@@ -1751,9 +1751,9 @@ pub unsafe extern "C" fn dc_get_blocked_contacts(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Box::into_raw(Box::new(dc_array_t::from(
|
Box::into_raw(Box::new(dc_array_t::from(
|
||||||
Contact::get_all_blocked(&ctx)
|
Contact::get_all_blocked(ctx)
|
||||||
.await
|
.await
|
||||||
.log_err(&ctx, "Can't get blocked contacts")
|
.log_err(ctx, "Can't get blocked contacts")
|
||||||
.unwrap_or_default(),
|
.unwrap_or_default(),
|
||||||
)))
|
)))
|
||||||
})
|
})
|
||||||
@@ -1772,13 +1772,13 @@ pub unsafe extern "C" fn dc_block_contact(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
if block == 0 {
|
if block == 0 {
|
||||||
Contact::unblock(&ctx, contact_id)
|
Contact::unblock(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.ok_or_log_msg(&ctx, "Can't unblock contact");
|
.ok_or_log_msg(ctx, "Can't unblock contact");
|
||||||
} else {
|
} else {
|
||||||
Contact::block(&ctx, contact_id)
|
Contact::block(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.ok_or_log_msg(&ctx, "Can't block contact");
|
.ok_or_log_msg(ctx, "Can't block contact");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1795,11 +1795,11 @@ pub unsafe extern "C" fn dc_get_contact_encrinfo(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Contact::get_encrinfo(&ctx, contact_id)
|
Contact::get_encrinfo(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.map(|s| s.strdup())
|
.map(|s| s.strdup())
|
||||||
.unwrap_or_else(|e| {
|
.unwrap_or_else(|e| {
|
||||||
error!(&ctx, "{}", e);
|
error!(ctx, "{}", e);
|
||||||
ptr::null_mut()
|
ptr::null_mut()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -1817,7 +1817,7 @@ pub unsafe extern "C" fn dc_delete_contact(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match Contact::delete(&ctx, contact_id).await {
|
match Contact::delete(ctx, contact_id).await {
|
||||||
Ok(_) => 1,
|
Ok(_) => 1,
|
||||||
Err(_) => 0,
|
Err(_) => 0,
|
||||||
}
|
}
|
||||||
@@ -1836,7 +1836,7 @@ pub unsafe extern "C" fn dc_get_contact(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
Contact::get_by_id(&ctx, contact_id)
|
Contact::get_by_id(ctx, contact_id)
|
||||||
.await
|
.await
|
||||||
.map(|contact| Box::into_raw(Box::new(ContactWrapper { context, contact })))
|
.map(|contact| Box::into_raw(Box::new(ContactWrapper { context, contact })))
|
||||||
.unwrap_or_else(|_| ptr::null_mut())
|
.unwrap_or_else(|_| ptr::null_mut())
|
||||||
@@ -1866,7 +1866,7 @@ pub unsafe extern "C" fn dc_imex(
|
|||||||
|
|
||||||
if let Some(param1) = to_opt_string_lossy(param1) {
|
if let Some(param1) = to_opt_string_lossy(param1) {
|
||||||
spawn(async move {
|
spawn(async move {
|
||||||
imex::imex(&ctx, what, param1.as_ref())
|
imex::imex(ctx, what, param1.as_ref())
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "IMEX failed")
|
.log_err(ctx, "IMEX failed")
|
||||||
});
|
});
|
||||||
@@ -1887,12 +1887,12 @@ pub unsafe extern "C" fn dc_imex_has_backup(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match imex::has_backup(&ctx, to_string_lossy(dir).as_ref()).await {
|
match imex::has_backup(ctx, to_string_lossy(dir).as_ref()).await {
|
||||||
Ok(res) => res.strdup(),
|
Ok(res) => res.strdup(),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
// do not bubble up error to the user,
|
// do not bubble up error to the user,
|
||||||
// the ui will expect that the file does not exist or cannot be accessed
|
// the ui will expect that the file does not exist or cannot be accessed
|
||||||
warn!(&ctx, "dc_imex_has_backup: {}", err);
|
warn!(ctx, "dc_imex_has_backup: {}", err);
|
||||||
ptr::null_mut()
|
ptr::null_mut()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1908,10 +1908,10 @@ pub unsafe extern "C" fn dc_initiate_key_transfer(context: *mut dc_context_t) ->
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match imex::initiate_key_transfer(&ctx).await {
|
match imex::initiate_key_transfer(ctx).await {
|
||||||
Ok(res) => res.strdup(),
|
Ok(res) => res.strdup(),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
error!(&ctx, "dc_initiate_key_transfer(): {}", err);
|
error!(ctx, "dc_initiate_key_transfer(): {}", err);
|
||||||
ptr::null_mut()
|
ptr::null_mut()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1934,12 +1934,12 @@ pub unsafe extern "C" fn dc_continue_key_transfer(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match imex::continue_key_transfer(&ctx, MsgId::new(msg_id), &to_string_lossy(setup_code))
|
match imex::continue_key_transfer(ctx, MsgId::new(msg_id), &to_string_lossy(setup_code))
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(()) => 1,
|
Ok(()) => 1,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(&ctx, "dc_continue_key_transfer: {}", err);
|
warn!(ctx, "dc_continue_key_transfer: {}", err);
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1968,7 +1968,7 @@ pub unsafe extern "C" fn dc_check_qr(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let lot = qr::check_qr(&ctx, &to_string_lossy(qr)).await;
|
let lot = qr::check_qr(ctx, &to_string_lossy(qr)).await;
|
||||||
Box::into_raw(Box::new(lot))
|
Box::into_raw(Box::new(lot))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1990,7 +1990,7 @@ pub unsafe extern "C" fn dc_get_securejoin_qr(
|
|||||||
};
|
};
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
securejoin::dc_get_securejoin_qr(&ctx, chat_id)
|
securejoin::dc_get_securejoin_qr(ctx, chat_id)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_else(|| "".to_string())
|
.unwrap_or_else(|| "".to_string())
|
||||||
.strdup()
|
.strdup()
|
||||||
@@ -2009,7 +2009,7 @@ pub unsafe extern "C" fn dc_join_securejoin(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
securejoin::dc_join_securejoin(&ctx, &to_string_lossy(qr))
|
securejoin::dc_join_securejoin(ctx, &to_string_lossy(qr))
|
||||||
.await
|
.await
|
||||||
.map(|chatid| chatid.to_u32())
|
.map(|chatid| chatid.to_u32())
|
||||||
.log_err(ctx, "failed dc_join_securejoin() call")
|
.log_err(ctx, "failed dc_join_securejoin() call")
|
||||||
@@ -2030,7 +2030,7 @@ pub unsafe extern "C" fn dc_send_locations_to_chat(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(location::send_locations_to_chat(
|
block_on(location::send_locations_to_chat(
|
||||||
&ctx,
|
ctx,
|
||||||
ChatId::new(chat_id),
|
ChatId::new(chat_id),
|
||||||
seconds as i64,
|
seconds as i64,
|
||||||
));
|
));
|
||||||
@@ -2052,7 +2052,7 @@ pub unsafe extern "C" fn dc_is_sending_locations_to_chat(
|
|||||||
Some(ChatId::new(chat_id))
|
Some(ChatId::new(chat_id))
|
||||||
};
|
};
|
||||||
|
|
||||||
block_on(location::is_sending_locations_to_chat(&ctx, chat_id)) as libc::c_int
|
block_on(location::is_sending_locations_to_chat(ctx, chat_id)) as libc::c_int
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -2068,7 +2068,7 @@ pub unsafe extern "C" fn dc_set_location(
|
|||||||
}
|
}
|
||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(location::set(&ctx, latitude, longitude, accuracy)) as _
|
block_on(location::set(ctx, latitude, longitude, accuracy)) as _
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -2097,7 +2097,7 @@ pub unsafe extern "C" fn dc_get_locations(
|
|||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let res = location::get_range(
|
let res = location::get_range(
|
||||||
&ctx,
|
ctx,
|
||||||
chat_id,
|
chat_id,
|
||||||
contact_id,
|
contact_id,
|
||||||
timestamp_begin as i64,
|
timestamp_begin as i64,
|
||||||
@@ -2118,7 +2118,7 @@ pub unsafe extern "C" fn dc_delete_all_locations(context: *mut dc_context_t) {
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
location::delete_all(&ctx)
|
location::delete_all(ctx)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "Failed to delete locations")
|
.log_err(ctx, "Failed to delete locations")
|
||||||
.ok()
|
.ok()
|
||||||
@@ -2385,7 +2385,7 @@ pub unsafe extern "C" fn dc_chatlist_get_summary(
|
|||||||
block_on(async move {
|
block_on(async move {
|
||||||
let lot = ffi_list
|
let lot = ffi_list
|
||||||
.list
|
.list
|
||||||
.get_summary(&ctx, index as usize, maybe_chat)
|
.get_summary(ctx, index as usize, maybe_chat)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "get_summary failed")
|
.log_err(ctx, "get_summary failed")
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
@@ -2410,7 +2410,7 @@ pub unsafe extern "C" fn dc_chatlist_get_summary2(
|
|||||||
Some(MsgId::new(msg_id))
|
Some(MsgId::new(msg_id))
|
||||||
};
|
};
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let lot = Chatlist::get_summary2(&ctx, ChatId::new(chat_id), msg_id, None)
|
let lot = Chatlist::get_summary2(ctx, ChatId::new(chat_id), msg_id, None)
|
||||||
.await
|
.await
|
||||||
.log_err(ctx, "get_summary2 failed")
|
.log_err(ctx, "get_summary2 failed")
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
@@ -2496,7 +2496,7 @@ pub unsafe extern "C" fn dc_chat_get_profile_image(chat: *mut dc_chat_t) -> *mut
|
|||||||
let ctx = &*ffi_chat.context;
|
let ctx = &*ffi_chat.context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
match ffi_chat.chat.get_profile_image(&ctx).await {
|
match ffi_chat.chat.get_profile_image(ctx).await {
|
||||||
Ok(Some(p)) => p.to_string_lossy().strdup(),
|
Ok(Some(p)) => p.to_string_lossy().strdup(),
|
||||||
Ok(None) => ptr::null_mut(),
|
Ok(None) => ptr::null_mut(),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
@@ -2516,7 +2516,7 @@ pub unsafe extern "C" fn dc_chat_get_color(chat: *mut dc_chat_t) -> u32 {
|
|||||||
let ffi_chat = &*chat;
|
let ffi_chat = &*chat;
|
||||||
let ctx = &*ffi_chat.context;
|
let ctx = &*ffi_chat.context;
|
||||||
|
|
||||||
block_on(ffi_chat.chat.get_color(&ctx)).unwrap_or_log_default(ctx, "Failed get_color")
|
block_on(ffi_chat.chat.get_color(ctx)).unwrap_or_log_default(ctx, "Failed get_color")
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -2647,25 +2647,25 @@ pub unsafe extern "C" fn dc_chat_get_info_json(
|
|||||||
let ctx = &*context;
|
let ctx = &*context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let chat = match chat::Chat::load_from_db(&ctx, ChatId::new(chat_id)).await {
|
let chat = match chat::Chat::load_from_db(ctx, ChatId::new(chat_id)).await {
|
||||||
Ok(chat) => chat,
|
Ok(chat) => chat,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
error!(&ctx, "dc_get_chat_info_json() failed to load chat: {}", err);
|
error!(ctx, "dc_get_chat_info_json() failed to load chat: {}", err);
|
||||||
return "".strdup();
|
return "".strdup();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let info = match chat.get_info(&ctx).await {
|
let info = match chat.get_info(ctx).await {
|
||||||
Ok(info) => info,
|
Ok(info) => info,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
error!(
|
error!(
|
||||||
&ctx,
|
ctx,
|
||||||
"dc_get_chat_info_json() failed to get chat info: {}", err
|
"dc_get_chat_info_json() failed to get chat info: {}", err
|
||||||
);
|
);
|
||||||
return "".strdup();
|
return "".strdup();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
serde_json::to_string(&info)
|
serde_json::to_string(&info)
|
||||||
.unwrap_or_log_default(&ctx, "dc_get_chat_info_json() failed to serialise to json")
|
.unwrap_or_log_default(ctx, "dc_get_chat_info_json() failed to serialise to json")
|
||||||
.strdup()
|
.strdup()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -2866,7 +2866,7 @@ pub unsafe extern "C" fn dc_msg_get_filebytes(msg: *mut dc_msg_t) -> u64 {
|
|||||||
let ffi_msg = &*msg;
|
let ffi_msg = &*msg;
|
||||||
let ctx = &*ffi_msg.context;
|
let ctx = &*ffi_msg.context;
|
||||||
|
|
||||||
block_on(ffi_msg.message.get_filebytes(&ctx))
|
block_on(ffi_msg.message.get_filebytes(ctx))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -2958,7 +2958,7 @@ pub unsafe extern "C" fn dc_msg_get_summary(
|
|||||||
let ctx = &*ffi_msg.context;
|
let ctx = &*ffi_msg.context;
|
||||||
|
|
||||||
block_on(async move {
|
block_on(async move {
|
||||||
let lot = ffi_msg.message.get_summary(&ctx, maybe_chat).await;
|
let lot = ffi_msg.message.get_summary(ctx, maybe_chat).await;
|
||||||
Box::into_raw(Box::new(lot))
|
Box::into_raw(Box::new(lot))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -2978,7 +2978,7 @@ pub unsafe extern "C" fn dc_msg_get_summarytext(
|
|||||||
block_on({
|
block_on({
|
||||||
ffi_msg
|
ffi_msg
|
||||||
.message
|
.message
|
||||||
.get_summarytext(&ctx, approx_characters.try_into().unwrap_or_default())
|
.get_summarytext(ctx, approx_characters.try_into().unwrap_or_default())
|
||||||
})
|
})
|
||||||
.strdup()
|
.strdup()
|
||||||
}
|
}
|
||||||
@@ -3118,7 +3118,7 @@ pub unsafe extern "C" fn dc_msg_get_setupcodebegin(msg: *mut dc_msg_t) -> *mut l
|
|||||||
let ffi_msg = &*msg;
|
let ffi_msg = &*msg;
|
||||||
let ctx = &*ffi_msg.context;
|
let ctx = &*ffi_msg.context;
|
||||||
|
|
||||||
block_on(ffi_msg.message.get_setupcodebegin(&ctx))
|
block_on(ffi_msg.message.get_setupcodebegin(ctx))
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.strdup()
|
.strdup()
|
||||||
}
|
}
|
||||||
@@ -3230,7 +3230,7 @@ pub unsafe extern "C" fn dc_msg_latefiling_mediasize(
|
|||||||
block_on({
|
block_on({
|
||||||
ffi_msg
|
ffi_msg
|
||||||
.message
|
.message
|
||||||
.latefiling_mediasize(&ctx, width, height, duration)
|
.latefiling_mediasize(ctx, width, height, duration)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3410,7 +3410,7 @@ pub unsafe extern "C" fn dc_contact_get_profile_image(
|
|||||||
block_on(async move {
|
block_on(async move {
|
||||||
ffi_contact
|
ffi_contact
|
||||||
.contact
|
.contact
|
||||||
.get_profile_image(&ctx)
|
.get_profile_image(ctx)
|
||||||
.await
|
.await
|
||||||
.unwrap_or_log_default(ctx, "failed to get profile image")
|
.unwrap_or_log_default(ctx, "failed to get profile image")
|
||||||
.map(|p| p.to_string_lossy().strdup())
|
.map(|p| p.to_string_lossy().strdup())
|
||||||
@@ -3457,7 +3457,7 @@ pub unsafe extern "C" fn dc_contact_is_verified(contact: *mut dc_contact_t) -> l
|
|||||||
let ffi_contact = &*contact;
|
let ffi_contact = &*contact;
|
||||||
let ctx = &*ffi_contact.context;
|
let ctx = &*ffi_contact.context;
|
||||||
|
|
||||||
block_on(async move { ffi_contact.contact.is_verified(&ctx).await as libc::c_int })
|
block_on(async move { ffi_contact.contact.is_verified(ctx).await as libc::c_int })
|
||||||
}
|
}
|
||||||
|
|
||||||
// dc_lot_t
|
// dc_lot_t
|
||||||
|
|||||||
@@ -17,15 +17,12 @@ use std::ptr;
|
|||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
unsafe fn dc_strdup(s: *const libc::c_char) -> *mut libc::c_char {
|
unsafe fn dc_strdup(s: *const libc::c_char) -> *mut libc::c_char {
|
||||||
let ret: *mut libc::c_char;
|
let ret: *mut libc::c_char = if !s.is_null() {
|
||||||
if !s.is_null() {
|
libc::strdup(s)
|
||||||
ret = libc::strdup(s);
|
|
||||||
assert!(!ret.is_null());
|
|
||||||
} else {
|
} else {
|
||||||
ret = libc::calloc(1, 1) as *mut libc::c_char;
|
libc::calloc(1, 1) as *mut libc::c_char
|
||||||
assert!(!ret.is_null());
|
};
|
||||||
}
|
assert!(!ret.is_null());
|
||||||
|
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user