Merge pull request #153 from deltachat/flub-null-cb

Make the callback optional again
This commit is contained in:
Floris Bruynooghe
2019-06-17 20:38:46 +02:00
committed by GitHub
19 changed files with 111 additions and 232 deletions

View File

@@ -22,7 +22,7 @@ pub type dc_callback_t = types::dc_callback_t;
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn dc_context_new( pub unsafe extern "C" fn dc_context_new(
cb: dc_callback_t, cb: Option<dc_callback_t>,
userdata: *mut libc::c_void, userdata: *mut libc::c_void,
os_name: *const libc::c_char, os_name: *const libc::c_char,
) -> *mut dc_context_t { ) -> *mut dc_context_t {

View File

@@ -83,7 +83,7 @@ pub unsafe fn dc_reset_tables(context: &Context, bits: i32) -> i32 {
info!(context, 0, "(8) Rest but server config reset."); info!(context, 0, "(8) Rest but server config reset.");
} }
(context.cb)(context, Event::MSGS_CHANGED, 0 as uintptr_t, 0 as uintptr_t); context.call_cb(Event::MSGS_CHANGED, 0 as uintptr_t, 0 as uintptr_t);
1 1
} }
@@ -215,7 +215,7 @@ unsafe fn poke_spec(context: &Context, spec: *const libc::c_char) -> libc::c_int
as_str(real_spec) as_str(real_spec)
); );
if read_cnt > 0 { if read_cnt > 0 {
(context.cb)(context, Event::MSGS_CHANGED, 0 as uintptr_t, 0 as uintptr_t); context.call_cb(Event::MSGS_CHANGED, 0 as uintptr_t, 0 as uintptr_t);
} }
success = 1 success = 1
} }
@@ -1180,7 +1180,7 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E
"event" => { "event" => {
ensure!(!arg1.is_empty(), "Argument <id> missing."); ensure!(!arg1.is_empty(), "Argument <id> missing.");
let event = Event::from_u32(arg1.parse().unwrap()).unwrap(); let event = Event::from_u32(arg1.parse().unwrap()).unwrap();
let r = (context.cb)(context, event, 0 as uintptr_t, 0 as uintptr_t); let r = context.call_cb(event, 0 as uintptr_t, 0 as uintptr_t);
println!( println!(
"Sending event {:?}({}), received value {}.", "Sending event {:?}({}), received value {}.",
event, event as usize, r as libc::c_int, event, event as usize, r as libc::c_int,

View File

@@ -386,7 +386,7 @@ impl Helper for DcHelper {}
fn main_0(args: Vec<String>) -> Result<(), failure::Error> { fn main_0(args: Vec<String>) -> Result<(), failure::Error> {
let mut context = dc_context_new( let mut context = dc_context_new(
receive_event, Some(receive_event),
0 as *mut libc::c_void, 0 as *mut libc::c_void,
b"CLI\x00" as *const u8 as *const libc::c_char, b"CLI\x00" as *const u8 as *const libc::c_char,
); );

View File

@@ -40,7 +40,7 @@ extern "C" fn cb(_ctx: &Context, event: Event, data1: usize, data2: usize) -> us
fn main() { fn main() {
unsafe { unsafe {
let ctx = dc_context_new(cb, std::ptr::null_mut(), std::ptr::null_mut()); let ctx = dc_context_new(Some(cb), std::ptr::null_mut(), std::ptr::null_mut());
let running = Arc::new(RwLock::new(true)); let running = Arc::new(RwLock::new(true));
let info = dc_get_info(&ctx); let info = dc_get_info(&ctx);
let info_s = CStr::from_ptr(info); let info_s = CStr::from_ptr(info);

View File

@@ -18,6 +18,9 @@ if [ $DCC_RS_TARGET = 'release' ]; then
else else
cargo build -p deltachat_ffi cargo build -p deltachat_ffi
fi fi
if [ $? != 0 ]; then
exit $?
fi
pushd python pushd python
toxargs="$@" toxargs="$@"

View File

@@ -35,7 +35,7 @@ pub struct Context {
pub smtp: Arc<Mutex<Smtp>>, pub smtp: Arc<Mutex<Smtp>>,
pub smtp_state: Arc<(Mutex<SmtpState>, Condvar)>, pub smtp_state: Arc<(Mutex<SmtpState>, Condvar)>,
pub oauth2_critical: Arc<Mutex<()>>, pub oauth2_critical: Arc<Mutex<()>>,
pub cb: dc_callback_t, pub cb: Option<dc_callback_t>,
pub os_name: *mut libc::c_char, pub os_name: *mut libc::c_char,
pub cmdline_sel_chat_id: Arc<RwLock<u32>>, pub cmdline_sel_chat_id: Arc<RwLock<u32>>,
pub bob: Arc<RwLock<BobStatus>>, pub bob: Arc<RwLock<BobStatus>>,
@@ -68,6 +68,14 @@ impl Context {
pub fn get_blobdir(&self) -> *const libc::c_char { pub fn get_blobdir(&self) -> *const libc::c_char {
*self.blobdir.clone().read().unwrap() *self.blobdir.clone().read().unwrap()
} }
pub fn call_cb(&self, event: Event, data1: uintptr_t, data2: uintptr_t) -> uintptr_t {
if let Some(cb) = self.cb {
unsafe { cb(self, event, data1, data2) }
} else {
0
}
}
} }
impl Default for RunningState { impl Default for RunningState {
@@ -123,7 +131,7 @@ pub struct _dc_location {
// create/open/config/information // create/open/config/information
pub fn dc_context_new( pub fn dc_context_new(
cb: dc_callback_t, cb: Option<dc_callback_t>,
userdata: *mut libc::c_void, userdata: *mut libc::c_void,
os_name: *const libc::c_char, os_name: *const libc::c_char,
) -> Context { ) -> Context {

View File

@@ -52,12 +52,7 @@ pub unsafe fn dc_create_chat_by_msg_id(context: &Context, msg_id: uint32_t) -> u
dc_msg_unref(msg); dc_msg_unref(msg);
dc_chat_unref(chat); dc_chat_unref(chat);
if 0 != send_event { if 0 != send_event {
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
chat_id chat_id
} }
@@ -244,12 +239,7 @@ pub unsafe fn dc_create_chat_by_contact_id(context: &Context, contact_id: uint32
dc_scaleup_contact_origin(context, contact_id, 0x800i32); dc_scaleup_contact_origin(context, contact_id, 0x800i32);
} }
if 0 != send_event { if 0 != send_event {
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
chat_id chat_id
} }
@@ -405,8 +395,7 @@ pub unsafe fn dc_prepare_msg<'a>(
} }
(*msg).state = 18i32; (*msg).state = 18i32;
let msg_id: uint32_t = prepare_msg_common(context, chat_id, msg); let msg_id: uint32_t = prepare_msg_common(context, chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
(*msg).chat_id as uintptr_t, (*msg).chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
@@ -1007,15 +996,14 @@ pub unsafe fn dc_send_msg<'a>(
if 0 == dc_job_send_msg(context, (*msg).id) { if 0 == dc_job_send_msg(context, (*msg).id) {
return 0i32 as uint32_t; return 0i32 as uint32_t;
} }
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
(*msg).chat_id as uintptr_t, (*msg).chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
); );
if 0 != dc_param_exists((*msg).param, DC_PARAM_SET_LATITUDE as libc::c_int) { if 0 != dc_param_exists((*msg).param, DC_PARAM_SET_LATITUDE as libc::c_int) {
(context.cb)(context, Event::LOCATION_CHANGED, DC_CONTACT_ID_SELF, 0); context.call_cb(Event::LOCATION_CHANGED, DC_CONTACT_ID_SELF, 0);
} }
if 0 == chat_id { if 0 == chat_id {
@@ -1065,12 +1053,7 @@ pub unsafe fn dc_set_draft(context: &Context, chat_id: uint32_t, msg: *mut dc_ms
return; return;
} }
if 0 != set_draft_raw(context, chat_id, msg) { if 0 != set_draft_raw(context, chat_id, msg) {
(context.cb)( context.call_cb(Event::MSGS_CHANGED, chat_id as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
chat_id as uintptr_t,
0i32 as uintptr_t,
);
}; };
} }
@@ -1317,12 +1300,7 @@ pub unsafe fn dc_marknoticed_chat(context: &Context, chat_id: uint32_t) {
); );
sqlite3_bind_int(update, 1i32, chat_id as libc::c_int); sqlite3_bind_int(update, 1i32, chat_id as libc::c_int);
sqlite3_step(update); sqlite3_step(update);
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
sqlite3_finalize(check); sqlite3_finalize(check);
@@ -1345,12 +1323,7 @@ pub unsafe fn dc_marknoticed_all_chats(context: &Context) {
b"UPDATE msgs SET state=13 WHERE state=10;\x00" as *const u8 as *const libc::c_char, b"UPDATE msgs SET state=13 WHERE state=10;\x00" as *const u8 as *const libc::c_char,
); );
sqlite3_step(update); sqlite3_step(update);
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
sqlite3_finalize(check); sqlite3_finalize(check);
@@ -1474,12 +1447,7 @@ pub unsafe fn dc_archive_chat(context: &Context, chat_id: uint32_t, archive: lib
sqlite3_bind_int(stmt_0, 2i32, chat_id as libc::c_int); sqlite3_bind_int(stmt_0, 2i32, chat_id as libc::c_int);
sqlite3_step(stmt_0); sqlite3_step(stmt_0);
sqlite3_finalize(stmt_0); sqlite3_finalize(stmt_0);
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
pub unsafe fn dc_delete_chat(context: &Context, chat_id: uint32_t) { pub unsafe fn dc_delete_chat(context: &Context, chat_id: uint32_t) {
@@ -1523,8 +1491,7 @@ pub unsafe fn dc_delete_chat(context: &Context, chat_id: uint32_t) {
{ {
sqlite3_free(q3 as *mut libc::c_void); sqlite3_free(q3 as *mut libc::c_void);
q3 = 0 as *mut libc::c_char; q3 = 0 as *mut libc::c_char;
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1626,12 +1593,7 @@ pub unsafe fn dc_create_group_chat(
dc_msg_unref(draft_msg); dc_msg_unref(draft_msg);
free(grpid as *mut libc::c_void); free(grpid as *mut libc::c_void);
if 0 != chat_id { if 0 != chat_id {
(context.cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
chat_id chat_id
@@ -1766,15 +1728,13 @@ pub unsafe fn dc_add_contact_to_chat_ex(
dc_param_set((*msg).param, 'E' as i32, (*contact).addr); dc_param_set((*msg).param, 'E' as i32, (*contact).addr);
dc_param_set_int((*msg).param, 'F' as i32, flags); dc_param_set_int((*msg).param, 'F' as i32, flags);
(*msg).id = dc_send_msg(context, chat_id, msg); (*msg).id = dc_send_msg(context, chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
); );
} }
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1907,8 +1867,7 @@ pub unsafe fn dc_remove_contact_from_chat(
dc_param_set_int((*msg).param, 'S' as i32, 5i32); dc_param_set_int((*msg).param, 'S' as i32, 5i32);
dc_param_set((*msg).param, 'E' as i32, (*contact).addr); dc_param_set((*msg).param, 'E' as i32, (*contact).addr);
(*msg).id = dc_send_msg(context, chat_id, msg); (*msg).id = dc_send_msg(context, chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
@@ -1922,8 +1881,7 @@ pub unsafe fn dc_remove_contact_from_chat(
contact_id, contact_id,
); );
if !(0 == dc_sqlite3_execute(context, &context.sql.clone().read().unwrap(), q3)) { if !(0 == dc_sqlite3_execute(context, &context.sql.clone().read().unwrap(), q3)) {
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -2017,15 +1975,13 @@ pub unsafe fn dc_set_chat_name(
dc_param_set_int((*msg).param, 'S' as i32, 2i32); dc_param_set_int((*msg).param, 'S' as i32, 2i32);
dc_param_set((*msg).param, 'E' as i32, (*chat).name); dc_param_set((*msg).param, 'E' as i32, (*chat).name);
(*msg).id = dc_send_msg(context, chat_id, msg); (*msg).id = dc_send_msg(context, chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
); );
} }
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -2097,15 +2053,13 @@ pub unsafe fn dc_set_chat_profile_image(
1i32 as uint32_t, 1i32 as uint32_t,
); );
(*msg).id = dc_send_msg(context, chat_id, msg); (*msg).id = dc_send_msg(context, chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
(*msg).id as uintptr_t, (*msg).id as uintptr_t,
); );
} }
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -2213,8 +2167,7 @@ pub unsafe fn dc_forward_msgs(
let mut i = 0u32; let mut i = 0u32;
let icnt = carray_count(created_db_entries); let icnt = carray_count(created_db_entries);
while i < icnt { while i < icnt {
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
carray_get(created_db_entries, i) as uintptr_t, carray_get(created_db_entries, i) as uintptr_t,
carray_get(created_db_entries, i.wrapping_add(1)) as uintptr_t, carray_get(created_db_entries, i.wrapping_add(1)) as uintptr_t,
@@ -2479,8 +2432,7 @@ pub unsafe fn dc_add_device_msg(context: &Context, chat_id: uint32_t, text: *con
b"rfc724_mid\x00" as *const u8 as *const libc::c_char, b"rfc724_mid\x00" as *const u8 as *const libc::c_char,
rfc724_mid, rfc724_mid,
); );
(context.cb)( context.call_cb(
context,
Event::MSGS_CHANGED, Event::MSGS_CHANGED,
chat_id as uintptr_t, chat_id as uintptr_t,
msg_id as uintptr_t, msg_id as uintptr_t,

View File

@@ -158,8 +158,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
let s = s_a.read().unwrap(); let s = s_a.read().unwrap();
if !s.shall_stop_ongoing { if !s.shall_stop_ongoing {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 0i32 < 1i32 { (if 0i32 < 1i32 {
1i32 1i32
@@ -193,8 +192,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
if s.shall_stop_ongoing { if s.shall_stop_ongoing {
current_block = 2927484062889439186; current_block = 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 10i32 < 1i32 { (if 10i32 < 1i32 {
1i32 1i32
@@ -223,8 +221,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
if s.shall_stop_ongoing { if s.shall_stop_ongoing {
current_block = 2927484062889439186; current_block = 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 20i32 < 1i32 { (if 20i32 < 1i32 {
1i32 1i32
@@ -260,8 +257,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
(*param).mail_pw = dc_strdup(0 as *const libc::c_char) (*param).mail_pw = dc_strdup(0 as *const libc::c_char)
} }
if !s.shall_stop_ongoing { if !s.shall_stop_ongoing {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 200i32 < 1i32 { (if 200i32 < 1i32 {
1i32 1i32
@@ -303,8 +299,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
if s.shall_stop_ongoing { if s.shall_stop_ongoing {
current_block = 2927484062889439186; current_block = 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 300i32 < 1i32 { (if 300i32 < 1i32 {
1i32 1i32
@@ -341,8 +336,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
if s.shall_stop_ongoing { if s.shall_stop_ongoing {
current_block = 2927484062889439186; current_block = 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 310i32 < 1i32 { (if 310i32 < 1i32 {
1i32 1i32
@@ -405,8 +399,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
2927484062889439186; 2927484062889439186;
break; break;
} }
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 320i32 + i * 10i32 < 1i32 { (if 320i32 + i * 10i32 < 1i32 {
1i32 1i32
@@ -448,8 +441,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = current_block =
2927484062889439186; 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 340i32 (if 340i32
< <
@@ -506,7 +498,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
= =
2927484062889439186; 2927484062889439186;
} else { } else {
(context.cb)(context, context.call_cb(
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 350i32 (if 350i32
< <
@@ -565,7 +557,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
= =
2927484062889439186; 2927484062889439186;
} else { } else {
(context.cb)(context, context.call_cb(
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 500i32 (if 500i32
< <
@@ -785,8 +777,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
as *const libc::c_char, as *const libc::c_char,
); );
} else if !s.shall_stop_ongoing { } else if !s.shall_stop_ongoing {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 600i32 < 1i32 { (if 600i32 < 1i32 {
1i32 1i32
@@ -834,8 +825,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = 2927484062889439186; current_block = 2927484062889439186;
break; break;
} }
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 650i32 + username_variation * 30i32 (if 650i32 + username_variation * 30i32
< 1i32 < 1i32
@@ -879,8 +869,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = 2927484062889439186; current_block = 2927484062889439186;
break; break;
} }
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 660i32 + username_variation * 30i32 (if 660i32 + username_variation * 30i32
< 1i32 < 1i32
@@ -926,8 +915,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = 2927484062889439186; current_block = 2927484062889439186;
break; break;
} }
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 670i32 + username_variation * 30i32 (if 670i32 + username_variation * 30i32
< 1i32 < 1i32
@@ -964,8 +952,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
_ => { _ => {
imap_connected_here = 1i32; imap_connected_here = 1i32;
if !s.shall_stop_ongoing { if !s.shall_stop_ongoing {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 800i32 < 1i32 { (if 800i32 < 1i32 {
1i32 1i32
@@ -992,8 +979,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = current_block =
2927484062889439186; 2927484062889439186;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 850i32 < 1i32 { (if 850i32 < 1i32 {
1i32 1i32
@@ -1036,8 +1022,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
current_block = current_block =
2927484062889439186; 2927484062889439186;
} else { } else {
(context.cb)(context, context.call_cb(Event::CONFIGURE_PROGRESS,
Event::CONFIGURE_PROGRESS,
(if 860i32 (if 860i32
< <
1i32 1i32
@@ -1111,8 +1096,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
_ => { _ => {
smtp_connected_here = 1i32; smtp_connected_here = 1i32;
if !s.shall_stop_ongoing { if !s.shall_stop_ongoing {
(context.cb)(context, context.call_cb(Event::CONFIGURE_PROGRESS,
Event::CONFIGURE_PROGRESS,
(if 900i32 (if 900i32
< <
1i32 1i32
@@ -1166,8 +1150,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
context, flags, context, flags,
); );
if !s.shall_stop_ongoing { if !s.shall_stop_ongoing {
(context.cb)(context, context.call_cb(Event::CONFIGURE_PROGRESS,
Event::CONFIGURE_PROGRESS,
(if 910i32 (if 910i32
< <
1i32 1i32
@@ -1202,8 +1185,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
1i32); 1i32);
if !s.shall_stop_ongoing if !s.shall_stop_ongoing
{ {
(context.cb)(context, context.call_cb(Event::CONFIGURE_PROGRESS,
Event::CONFIGURE_PROGRESS,
(if 920i32 (if 920i32
< <
1i32 1i32
@@ -1233,8 +1215,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
*const libc::c_char); *const libc::c_char);
if !s.shall_stop_ongoing if !s.shall_stop_ongoing
{ {
(context.cb)(context, context.call_cb(Event::CONFIGURE_PROGRESS,
Event::CONFIGURE_PROGRESS,
(if 940i32 (if 940i32
< <
1i32 1i32
@@ -1287,8 +1268,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &Context, _job: *mut dc_j
dc_free_ongoing(context); dc_free_ongoing(context);
} }
free(mvbox_folder as *mut libc::c_void); free(mvbox_folder as *mut libc::c_void);
(context.cb)( context.call_cb(
context,
Event::CONFIGURE_PROGRESS, Event::CONFIGURE_PROGRESS,
(if 0 != success { 1000i32 } else { 0i32 }) as uintptr_t, (if 0 != success { 1000i32 } else { 0i32 }) as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -37,12 +37,7 @@ pub unsafe fn dc_marknoticed_contact(context: &Context, contact_id: uint32_t) {
sqlite3_bind_int(stmt, 1i32, contact_id as libc::c_int); sqlite3_bind_int(stmt, 1i32, contact_id as libc::c_int);
sqlite3_step(stmt); sqlite3_step(stmt);
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
((*context).cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
/// Returns false if addr is an invalid address, otherwise true. /// Returns false if addr is an invalid address, otherwise true.
@@ -140,8 +135,7 @@ pub unsafe fn dc_create_contact(
if !(addr.is_null() || *addr.offset(0isize) as libc::c_int == 0i32) { if !(addr.is_null() || *addr.offset(0isize) as libc::c_int == 0i32) {
contact_id = dc_add_or_lookup_contact(context, name, addr, 0x4000000i32, &mut sth_modified); contact_id = dc_add_or_lookup_contact(context, name, addr, 0x4000000i32, &mut sth_modified);
blocked = dc_is_contact_blocked(context, contact_id); blocked = dc_is_contact_blocked(context, contact_id);
((*context).cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
(if sth_modified == 2i32 { (if sth_modified == 2i32 {
contact_id contact_id
@@ -203,8 +197,7 @@ pub unsafe fn dc_block_contact(context: &Context, contact_id: uint32_t, new_bloc
5249903830285462583 => {} 5249903830285462583 => {}
_ => { _ => {
if 0 != send_event { if 0 != send_event {
((*context).cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -566,8 +559,7 @@ pub unsafe fn dc_add_address_book(context: &Context, adr_book: *const libc::c_ch
i = (i as libc::c_ulong).wrapping_add(2i32 as libc::c_ulong) as size_t as size_t i = (i as libc::c_ulong).wrapping_add(2i32 as libc::c_ulong) as size_t as size_t
} }
if 0 != modify_cnt { if 0 != modify_cnt {
((*context).cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -933,8 +925,7 @@ pub unsafe fn dc_delete_contact(context: &Context, contact_id: uint32_t) -> bool
); );
sqlite3_bind_int(stmt, 1i32, contact_id as libc::c_int); sqlite3_bind_int(stmt, 1i32, contact_id as libc::c_int);
if !(sqlite3_step(stmt) != 101i32) { if !(sqlite3_step(stmt) != 101i32) {
((*context).cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -678,12 +678,7 @@ pub unsafe fn dc_job_do_DC_JOB_IMEX_IMAP(context: &Context, job: *mut dc_job_t)
0i32, 0i32,
b"Import/export process started.\x00" as *const u8 as *const libc::c_char, b"Import/export process started.\x00" as *const u8 as *const libc::c_char,
); );
(context.cb)( context.call_cb(Event::IMEX_PROGRESS, 10i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::IMEX_PROGRESS,
10i32 as uintptr_t,
0i32 as uintptr_t,
);
if 0 == dc_sqlite3_is_open(&context.sql.clone().read().unwrap()) { if 0 == dc_sqlite3_is_open(&context.sql.clone().read().unwrap()) {
dc_log_error( dc_log_error(
context, context,
@@ -901,8 +896,7 @@ pub unsafe fn dc_job_do_DC_JOB_IMEX_IMAP(context: &Context, job: *mut dc_job_t)
if 0 != ongoing_allocated_here { if 0 != ongoing_allocated_here {
dc_free_ongoing(context); dc_free_ongoing(context);
} }
(context.cb)( context.call_cb(
context,
Event::IMEX_PROGRESS, Event::IMEX_PROGRESS,
(if 0 != success { 1000i32 } else { 0i32 }) as uintptr_t, (if 0 != success { 1000i32 } else { 0i32 }) as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -996,8 +990,7 @@ unsafe fn import_backup(context: &Context, backup_to_import: *const libc::c_char
if permille > 990i32 { if permille > 990i32 {
permille = 990i32 permille = 990i32
} }
(context.cb)( context.call_cb(
context,
Event::IMEX_PROGRESS, Event::IMEX_PROGRESS,
permille as uintptr_t, permille as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1213,8 +1206,7 @@ unsafe fn export_backup(context: &Context, dir: *const libc::c_char) -> libc::c_
if permille > 990 { if permille > 990 {
permille = 990; permille = 990;
} }
(context.cb)( context.call_cb(
context,
Event::IMEX_PROGRESS, Event::IMEX_PROGRESS,
permille as uintptr_t, permille as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1294,8 +1286,7 @@ unsafe fn export_backup(context: &Context, dir: *const libc::c_char) -> libc::c_
b"backup_time\x00" as *const u8 as *const libc::c_char, b"backup_time\x00" as *const u8 as *const libc::c_char,
now as int32_t, now as int32_t,
); );
(context.cb)( context.call_cb(
context,
Event::IMEX_FILE_WRITTEN, Event::IMEX_FILE_WRITTEN,
dest_pathNfilename as uintptr_t, dest_pathNfilename as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1558,8 +1549,7 @@ unsafe fn export_key_to_asc_file(
file_name, file_name,
); );
} else { } else {
(context.cb)( context.call_cb(
context,
Event::IMEX_FILE_WRITTEN, Event::IMEX_FILE_WRITTEN,
file_name as uintptr_t, file_name as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -416,8 +416,7 @@ unsafe fn dc_job_do_DC_JOB_SEND(context: &Context, job: &mut dc_job_t) {
} else { } else {
0i32 0i32
}; };
(context.cb)( context.call_cb(
context,
Event::MSG_DELIVERED, Event::MSG_DELIVERED,
chat_id as uintptr_t, chat_id as uintptr_t,
job.foreign_id as uintptr_t, job.foreign_id as uintptr_t,

View File

@@ -93,8 +93,7 @@ pub unsafe fn dc_send_locations_to_chat(
); );
dc_add_device_msg(context, chat_id, stock_str); dc_add_device_msg(context, chat_id, stock_str);
} }
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -191,8 +190,7 @@ pub unsafe fn dc_set_location(
continue_streaming = 1i32 continue_streaming = 1i32
} }
if 0 != continue_streaming { if 0 != continue_streaming {
(context.cb)( context.call_cb(
context,
Event::LOCATION_CHANGED, Event::LOCATION_CHANGED,
1i32 as uintptr_t, 1i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -303,8 +301,7 @@ pub unsafe fn dc_delete_all_locations(context: &Context) {
b"DELETE FROM locations;\x00" as *const u8 as *const libc::c_char, b"DELETE FROM locations;\x00" as *const u8 as *const libc::c_char,
); );
sqlite3_step(stmt); sqlite3_step(stmt);
(context.cb)( context.call_cb(
context,
Event::LOCATION_CHANGED, Event::LOCATION_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -825,8 +822,7 @@ pub unsafe fn dc_job_do_DC_JOB_MAYBE_SEND_LOC_ENDED(context: &Context, job: &mut
0i32 as uint32_t, 0i32 as uint32_t,
); );
dc_add_device_msg(context, chat_id, stock_str); dc_add_device_msg(context, chat_id, stock_str);
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -44,7 +44,7 @@ unsafe fn log_vprintf(
event as libc::c_int, event as libc::c_int,
) )
} }
((*context).cb)(context, event, data1 as uintptr_t, msg as uintptr_t); context.call_cb(event, data1 as uintptr_t, msg as uintptr_t);
free(msg as *mut libc::c_void); free(msg as *mut libc::c_void);
} }
@@ -97,10 +97,8 @@ macro_rules! info {
($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => {{ ($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => {{
let formatted = format!($msg, $($args),*); let formatted = format!($msg, $($args),*);
let formatted_c = $crate::dc_tools::to_cstring(formatted); let formatted_c = $crate::dc_tools::to_cstring(formatted);
unsafe { $ctx.call_cb($crate::constants::Event::INFO, $data1 as uintptr_t,
($ctx.cb)($ctx, $crate::constants::Event::INFO, $data1 as uintptr_t,
formatted_c.as_ptr() as uintptr_t) formatted_c.as_ptr() as uintptr_t)
}
}}; }};
} }
@@ -112,10 +110,8 @@ macro_rules! warn {
($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => { ($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => {
let formatted = format!($msg, $($args),*); let formatted = format!($msg, $($args),*);
let formatted_c = $crate::dc_tools::to_cstring(formatted); let formatted_c = $crate::dc_tools::to_cstring(formatted);
unsafe { $ctx.call_cb($crate::constants::Event::WARNING, $data1 as libc::uintptr_t,
($ctx.cb)($ctx, $crate::constants::Event::WARNING, $data1 as libc::uintptr_t,
formatted_c.as_ptr() as libc::uintptr_t) formatted_c.as_ptr() as libc::uintptr_t)
}
}; };
} }
@@ -127,10 +123,8 @@ macro_rules! error {
($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => { ($ctx:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => {
let formatted = format!($msg, $($args),*); let formatted = format!($msg, $($args),*);
let formatted_c = $crate::dc_tools::to_cstring(formatted); let formatted_c = $crate::dc_tools::to_cstring(formatted);
unsafe { $ctx.call_cb($crate::constants::Event::ERROR, $data1 as uintptr_t,
($ctx.cb)($ctx, $crate::constants::Event::ERROR, $data1 as uintptr_t,
formatted_c.as_ptr() as uintptr_t) formatted_c.as_ptr() as uintptr_t)
}
}; };
} }
@@ -142,9 +136,7 @@ macro_rules! log_event {
($ctx:expr, $event:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => { ($ctx:expr, $event:expr, $data1:expr, $msg:expr, $($args:expr),* $(,)?) => {
let formatted = format!($msg, $($args),*); let formatted = format!($msg, $($args),*);
let formatted_c = $crate::dc_tools::to_cstring(formatted); let formatted_c = $crate::dc_tools::to_cstring(formatted);
unsafe { $ctx.call_cb($event, $data1 as uintptr_t,
($ctx.cb)($ctx, $event, $data1 as uintptr_t,
formatted_c.as_ptr() as uintptr_t) formatted_c.as_ptr() as uintptr_t)
}
}; };
} }

View File

@@ -577,12 +577,7 @@ pub unsafe fn dc_delete_msgs(context: &Context, msg_ids: *const uint32_t, msg_cn
} }
if 0 != msg_cnt { if 0 != msg_cnt {
((*context).cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
dc_job_kill_action(context, 105i32); dc_job_kill_action(context, 105i32);
dc_job_add(context, 105i32, 0i32, 0 as *const libc::c_char, 10i32); dc_job_add(context, 105i32, 0i32, 0 as *const libc::c_char, 10i32);
}; };
@@ -645,12 +640,7 @@ pub unsafe fn dc_markseen_msgs(context: &Context, msg_ids: *const uint32_t, msg_
} }
if 0 != send_event { if 0 != send_event {
((*context).cb)( context.call_cb(Event::MSGS_CHANGED, 0i32 as uintptr_t, 0i32 as uintptr_t);
context,
Event::MSGS_CHANGED,
0i32 as uintptr_t,
0i32 as uintptr_t,
);
} }
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
@@ -1288,8 +1278,7 @@ pub unsafe fn dc_set_msg_failed(context: &Context, msg_id: uint32_t, error: *con
sqlite3_bind_text(stmt, 2i32, (*(*msg).param).packed, -1i32, None); sqlite3_bind_text(stmt, 2i32, (*(*msg).param).packed, -1i32, None);
sqlite3_bind_int(stmt, 3i32, msg_id as libc::c_int); sqlite3_bind_int(stmt, 3i32, msg_id as libc::c_int);
sqlite3_step(stmt); sqlite3_step(stmt);
((*context).cb)( context.call_cb(
context,
Event::MSG_FAILED, Event::MSG_FAILED,
(*msg).chat_id as uintptr_t, (*msg).chat_id as uintptr_t,
msg_id as uintptr_t, msg_id as uintptr_t,

View File

@@ -944,8 +944,7 @@ pub unsafe fn dc_receive_imf(
dc_contact_unref(contact); dc_contact_unref(contact);
} }
if send_event { if send_event {
((*context).cb)( context.call_cb(
context,
Event::LOCATION_CHANGED, Event::LOCATION_CHANGED,
from_id as uintptr_t, from_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -979,8 +978,7 @@ pub unsafe fn dc_receive_imf(
let mut i_0: size_t = 0; let mut i_0: size_t = 0;
let icnt_0: size_t = carray_count(created_db_entries) as size_t; let icnt_0: size_t = carray_count(created_db_entries) as size_t;
while i_0 < icnt_0 { while i_0 < icnt_0 {
((*context).cb)( context.call_cb(
context,
create_event_to_send, create_event_to_send,
carray_get(created_db_entries, i_0 as libc::c_uint) as uintptr_t, carray_get(created_db_entries, i_0 as libc::c_uint) as uintptr_t,
carray_get(created_db_entries, i_0.wrapping_add(1) as libc::c_uint) carray_get(created_db_entries, i_0.wrapping_add(1) as libc::c_uint)
@@ -996,8 +994,7 @@ pub unsafe fn dc_receive_imf(
let icnt_1: size_t = carray_count(rr_event_to_send) as size_t; let icnt_1: size_t = carray_count(rr_event_to_send) as size_t;
i_1 = 0i32 as size_t; i_1 = 0i32 as size_t;
while i_1 < icnt_1 { while i_1 < icnt_1 {
((*context).cb)( context.call_cb(
context,
Event::MSG_READ, Event::MSG_READ,
carray_get(rr_event_to_send, i_1 as libc::c_uint) as uintptr_t, carray_get(rr_event_to_send, i_1 as libc::c_uint) as uintptr_t,
carray_get(rr_event_to_send, i_1.wrapping_add(1) as libc::c_uint) as uintptr_t, carray_get(rr_event_to_send, i_1.wrapping_add(1) as libc::c_uint) as uintptr_t,
@@ -1378,8 +1375,7 @@ unsafe fn create_or_lookup_group(
sqlite3_bind_int(stmt, 2i32, chat_id as libc::c_int); sqlite3_bind_int(stmt, 2i32, chat_id as libc::c_int);
sqlite3_step(stmt); sqlite3_step(stmt);
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
((*context).cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1481,8 +1477,7 @@ unsafe fn create_or_lookup_group(
dc_reset_gossiped_timestamp(context, chat_id); dc_reset_gossiped_timestamp(context, chat_id);
} }
if 0 != send_EVENT_CHAT_MODIFIED { if 0 != send_EVENT_CHAT_MODIFIED {
((*context).cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1617,8 +1612,7 @@ unsafe fn create_or_lookup_adhoc_group(
); );
i += 1 i += 1
} }
((*context).cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
chat_id as uintptr_t, chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -222,8 +222,7 @@ pub unsafe fn dc_join_securejoin(context: &Context, qr: *const libc::c_char) ->
b"Taking protocol shortcut.\x00" as *const u8 as *const libc::c_char, b"Taking protocol shortcut.\x00" as *const u8 as *const libc::c_char,
); );
context.bob.clone().write().unwrap().expects = 6; context.bob.clone().write().unwrap().expects = 6;
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_JOINER_PROGRESS, Event::SECUREJOIN_JOINER_PROGRESS,
chat_id_2_contact_id(context, contact_chat_id) as uintptr_t, chat_id_2_contact_id(context, contact_chat_id) as uintptr_t,
400i32 as uintptr_t, 400i32 as uintptr_t,
@@ -469,8 +468,7 @@ pub unsafe fn dc_handle_securejoin_handshake(
0i32, 0i32,
b"Secure-join requested.\x00" as *const u8 as *const libc::c_char, b"Secure-join requested.\x00" as *const u8 as *const libc::c_char,
); );
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_INVITER_PROGRESS, Event::SECUREJOIN_INVITER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
300i32 as uintptr_t, 300i32 as uintptr_t,
@@ -557,8 +555,7 @@ pub unsafe fn dc_handle_securejoin_handshake(
b"Fingerprint verified.\x00" as *const u8 as *const libc::c_char, b"Fingerprint verified.\x00" as *const u8 as *const libc::c_char,
); );
own_fingerprint = get_self_fingerprint(context); own_fingerprint = get_self_fingerprint(context);
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_JOINER_PROGRESS, Event::SECUREJOIN_JOINER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
400i32 as uintptr_t, 400i32 as uintptr_t,
@@ -664,14 +661,12 @@ pub unsafe fn dc_handle_securejoin_handshake(
b"Auth verified.\x00" as *const u8 as *const libc::c_char, b"Auth verified.\x00" as *const u8 as *const libc::c_char,
); );
secure_connection_established(context, contact_chat_id); secure_connection_established(context, contact_chat_id);
(context.cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
contact_id as uintptr_t, contact_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
); );
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_INVITER_PROGRESS, Event::SECUREJOIN_INVITER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
600i32 as uintptr_t, 600i32 as uintptr_t,
@@ -713,8 +708,7 @@ pub unsafe fn dc_handle_securejoin_handshake(
0 as *const libc::c_char, 0 as *const libc::c_char,
0 as *const libc::c_char, 0 as *const libc::c_char,
); );
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_INVITER_PROGRESS, Event::SECUREJOIN_INVITER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
1000i32 as uintptr_t, 1000i32 as uintptr_t,
@@ -807,8 +801,7 @@ pub unsafe fn dc_handle_securejoin_handshake(
current_block = 4378276786830486580; current_block = 4378276786830486580;
} else { } else {
dc_scaleup_contact_origin(context, contact_id, 0x2000000i32); dc_scaleup_contact_origin(context, contact_id, 0x2000000i32);
(context.cb)( context.call_cb(
context,
Event::CONTACTS_CHANGED, Event::CONTACTS_CHANGED,
0i32 as uintptr_t, 0i32 as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -877,14 +870,12 @@ pub unsafe fn dc_handle_securejoin_handshake(
); );
current_block = 4378276786830486580; current_block = 4378276786830486580;
} else { } else {
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_INVITER_PROGRESS, Event::SECUREJOIN_INVITER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
800i32 as uintptr_t, 800i32 as uintptr_t,
); );
(context.cb)( context.call_cb(
context,
Event::SECUREJOIN_INVITER_PROGRESS, Event::SECUREJOIN_INVITER_PROGRESS,
contact_id as uintptr_t, contact_id as uintptr_t,
1000i32 as uintptr_t, 1000i32 as uintptr_t,
@@ -931,8 +922,7 @@ unsafe fn secure_connection_established(context: &Context, contact_chat_id: uint
}, },
); );
dc_add_device_msg(context, contact_chat_id, msg); dc_add_device_msg(context, contact_chat_id, msg);
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
contact_chat_id as uintptr_t, contact_chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,
@@ -1101,8 +1091,7 @@ pub unsafe fn dc_handle_degrade_event(context: &Context, peerstate: &Peerstate)
let msg = dc_stock_str_repl_string(context, 37i32, c_addr_ptr); let msg = dc_stock_str_repl_string(context, 37i32, c_addr_ptr);
dc_add_device_msg(context, contact_chat_id, msg); dc_add_device_msg(context, contact_chat_id, msg);
free(msg as *mut libc::c_void); free(msg as *mut libc::c_void);
(context.cb)( context.call_cb(
context,
Event::CHAT_MODIFIED, Event::CHAT_MODIFIED,
contact_chat_id as uintptr_t, contact_chat_id as uintptr_t,
0i32 as uintptr_t, 0i32 as uintptr_t,

View File

@@ -14,12 +14,8 @@ pub unsafe fn dc_stock_str(context: &Context, id: libc::c_int) -> *mut libc::c_c
unsafe fn get_string(context: &Context, id: libc::c_int, qty: libc::c_int) -> *mut libc::c_char { unsafe fn get_string(context: &Context, id: libc::c_int, qty: libc::c_int) -> *mut libc::c_char {
let mut ret: *mut libc::c_char; let mut ret: *mut libc::c_char;
ret = ((*context).cb)( ret =
context, context.call_cb(Event::GET_STRING, id as uintptr_t, qty as uintptr_t) as *mut libc::c_char;
Event::GET_STRING,
id as uintptr_t,
qty as uintptr_t,
) as *mut libc::c_char;
if ret.is_null() { if ret.is_null() {
ret = default_string(id) ret = default_string(id)

View File

@@ -646,7 +646,7 @@ mod tests {
} }
unsafe fn create_test_context() -> TestContext { unsafe fn create_test_context() -> TestContext {
let mut ctx = dc_context_new(cb, std::ptr::null_mut(), std::ptr::null_mut()); let mut ctx = dc_context_new(Some(cb), std::ptr::null_mut(), std::ptr::null_mut());
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();
let dbfile = CString::new(dir.path().join("db.sqlite").to_str().unwrap()).unwrap(); let dbfile = CString::new(dir.path().join("db.sqlite").to_str().unwrap()).unwrap();
assert_eq!( assert_eq!(

View File

@@ -823,7 +823,7 @@ struct TestContext {
} }
unsafe fn create_test_context() -> TestContext { unsafe fn create_test_context() -> TestContext {
let mut ctx = dc_context_new(cb, std::ptr::null_mut(), std::ptr::null_mut()); let mut ctx = dc_context_new(Some(cb), std::ptr::null_mut(), std::ptr::null_mut());
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();
let dbfile = CString::new(dir.path().join("db.sqlite").to_str().unwrap()).unwrap(); let dbfile = CString::new(dir.path().join("db.sqlite").to_str().unwrap()).unwrap();
assert_eq!( assert_eq!(