mirror of
https://github.com/chatmail/core.git
synced 2026-04-27 18:36:30 +03:00
start reworking context references and smtp, imap
This commit is contained in:
@@ -57,7 +57,7 @@ use num_traits::FromPrimitive;
|
||||
*/
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn dc_reset_tables(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut bits: libc::c_int,
|
||||
) -> libc::c_int {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
@@ -152,7 +152,7 @@ pub unsafe extern "C" fn dc_reset_tables(
|
||||
* database. With this cleanup, they are also removed, as well as all
|
||||
* auto-added contacts, unless they are used in a chat or for blocking purpose.
|
||||
*/
|
||||
unsafe extern "C" fn dc_cleanup_contacts(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
unsafe extern "C" fn dc_cleanup_contacts(mut context: &dc_context_t) -> libc::c_int {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return 0i32;
|
||||
}
|
||||
@@ -167,7 +167,7 @@ unsafe extern "C" fn dc_cleanup_contacts(mut context: *mut dc_context_t) -> libc
|
||||
return 1i32;
|
||||
}
|
||||
unsafe extern "C" fn dc_poke_eml_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut filename: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
/* mainly for testing, may be called by dc_import_spec() */
|
||||
@@ -198,7 +198,7 @@ unsafe extern "C" fn dc_poke_eml_file(
|
||||
return success;
|
||||
}
|
||||
unsafe extern "C" fn poke_public_key(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut public_key_file: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
@@ -245,7 +245,7 @@ unsafe extern "C" fn poke_public_key(
|
||||
* @return 1=success, 0=error.
|
||||
*/
|
||||
unsafe extern "C" fn poke_spec(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut spec: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
@@ -403,7 +403,7 @@ unsafe extern "C" fn poke_spec(
|
||||
return success;
|
||||
}
|
||||
unsafe extern "C" fn log_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut prefix: *const libc::c_char,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) {
|
||||
@@ -466,7 +466,7 @@ unsafe extern "C" fn log_msg(
|
||||
free(contact_name as *mut libc::c_void);
|
||||
dc_contact_unref(contact);
|
||||
}
|
||||
unsafe extern "C" fn log_msglist(mut context: *mut dc_context_t, mut msglist: *mut dc_array_t) {
|
||||
unsafe extern "C" fn log_msglist(mut context: &dc_context_t, mut msglist: *mut dc_array_t) {
|
||||
let mut i: libc::c_int = 0;
|
||||
let mut cnt: libc::c_int = dc_array_get_cnt(msglist) as libc::c_int;
|
||||
let mut lines_out: libc::c_int = 0i32;
|
||||
@@ -500,10 +500,7 @@ unsafe extern "C" fn log_msglist(mut context: *mut dc_context_t, mut msglist: *m
|
||||
);
|
||||
};
|
||||
}
|
||||
unsafe extern "C" fn log_contactlist(
|
||||
mut context: *mut dc_context_t,
|
||||
mut contacts: *mut dc_array_t,
|
||||
) {
|
||||
unsafe extern "C" fn log_contactlist(mut context: &dc_context_t, mut contacts: *mut dc_array_t) {
|
||||
let mut contact: *mut dc_contact_t = 0 as *mut dc_contact_t;
|
||||
let mut peerstate: *mut dc_apeerstate_t = dc_apeerstate_new(context);
|
||||
if 0 == dc_array_search_id(contacts, 1i32 as uint32_t, 0 as *mut size_t) {
|
||||
@@ -604,7 +601,7 @@ pub unsafe extern "C" fn dc_cmdline(
|
||||
mut context: *mut dc_context_t,
|
||||
cmdline: &str,
|
||||
) -> *mut libc::c_char {
|
||||
let mut cmd: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut cmd: &libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut arg1: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut ret: *mut libc::c_char = 1i32 as *mut libc::c_char;
|
||||
let mut sel_chat: *mut dc_chat_t = 0 as *mut dc_chat_t;
|
||||
|
||||
@@ -81,7 +81,7 @@ use self::stress::*;
|
||||
static mut s_do_log_info: libc::c_int = 1i32;
|
||||
|
||||
unsafe extern "C" fn receive_event(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut event: Event,
|
||||
mut data1: uintptr_t,
|
||||
mut data2: uintptr_t,
|
||||
@@ -276,7 +276,7 @@ static mut run_threads: libc::c_int = 0i32;
|
||||
unsafe extern "C" fn inbox_thread_entry_point(
|
||||
mut entry_arg: *mut libc::c_void,
|
||||
) -> *mut libc::c_void {
|
||||
let mut context: *mut dc_context_t = entry_arg as *mut dc_context_t;
|
||||
let mut context: &dc_context_t = entry_arg as *mut dc_context_t;
|
||||
while 0 != run_threads {
|
||||
dc_perform_imap_jobs(context);
|
||||
dc_perform_imap_fetch(context);
|
||||
@@ -290,7 +290,7 @@ static mut mvbox_thread: pthread_t = 0 as pthread_t;
|
||||
unsafe extern "C" fn mvbox_thread_entry_point(
|
||||
mut entry_arg: *mut libc::c_void,
|
||||
) -> *mut libc::c_void {
|
||||
let mut context: *mut dc_context_t = entry_arg as *mut dc_context_t;
|
||||
let mut context: &dc_context_t = entry_arg as *mut dc_context_t;
|
||||
while 0 != run_threads {
|
||||
dc_perform_mvbox_fetch(context);
|
||||
if 0 != run_threads {
|
||||
@@ -303,7 +303,7 @@ static mut sentbox_thread: pthread_t = 0 as pthread_t;
|
||||
unsafe extern "C" fn sentbox_thread_entry_point(
|
||||
mut entry_arg: *mut libc::c_void,
|
||||
) -> *mut libc::c_void {
|
||||
let mut context: *mut dc_context_t = entry_arg as *mut dc_context_t;
|
||||
let mut context: &dc_context_t = entry_arg as *mut dc_context_t;
|
||||
while 0 != run_threads {
|
||||
dc_perform_sentbox_fetch(context);
|
||||
if 0 != run_threads {
|
||||
@@ -316,7 +316,7 @@ static mut smtp_thread: pthread_t = 0 as pthread_t;
|
||||
unsafe extern "C" fn smtp_thread_entry_point(
|
||||
mut entry_arg: *mut libc::c_void,
|
||||
) -> *mut libc::c_void {
|
||||
let mut context: *mut dc_context_t = entry_arg as *mut dc_context_t;
|
||||
let mut context: &dc_context_t = entry_arg as *mut dc_context_t;
|
||||
while 0 != run_threads {
|
||||
dc_perform_smtp_jobs(context);
|
||||
if 0 != run_threads {
|
||||
@@ -325,7 +325,7 @@ unsafe extern "C" fn smtp_thread_entry_point(
|
||||
}
|
||||
return 0 as *mut libc::c_void;
|
||||
}
|
||||
unsafe extern "C" fn start_threads(mut context: *mut dc_context_t) {
|
||||
unsafe extern "C" fn start_threads(mut context: &dc_context_t) {
|
||||
run_threads = 1i32;
|
||||
if inbox_thread == 0 {
|
||||
pthread_create(
|
||||
@@ -360,7 +360,7 @@ unsafe extern "C" fn start_threads(mut context: *mut dc_context_t) {
|
||||
);
|
||||
};
|
||||
}
|
||||
unsafe extern "C" fn stop_threads(mut context: *mut dc_context_t) {
|
||||
unsafe extern "C" fn stop_threads(mut context: &dc_context_t) {
|
||||
run_threads = 0i32;
|
||||
dc_interrupt_imap_idle(context);
|
||||
dc_interrupt_mvbox_idle(context);
|
||||
@@ -390,7 +390,7 @@ fn read_cmd() -> String {
|
||||
#[cfg(not(target_os = "android"))]
|
||||
unsafe fn main_0(mut argc: libc::c_int, mut argv: *mut *mut libc::c_char) -> libc::c_int {
|
||||
let mut cmd: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut context: *mut dc_context_t = dc_context_new(
|
||||
let mut context: &dc_context_t = dc_context_new(
|
||||
receive_event,
|
||||
0 as *mut libc::c_void,
|
||||
b"CLI\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -534,7 +534,7 @@ unsafe fn main_0(mut argc: libc::c_int, mut argv: *mut *mut libc::c_char) -> lib
|
||||
stop_threads(context);
|
||||
dc_close(context);
|
||||
dc_context_unref(context);
|
||||
context = 0 as *mut dc_context_t;
|
||||
context = 0 as &dc_context_t;
|
||||
return 0i32;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -16,7 +16,7 @@ use deltachat::dc_job::{
|
||||
};
|
||||
use deltachat::dc_lot::*;
|
||||
|
||||
extern "C" fn cb(_ctx: *mut dc_context_t, event: Event, data1: usize, data2: usize) -> usize {
|
||||
extern "C" fn cb(_ctx: &dc_context_t, event: Event, data1: usize, data2: usize) -> usize {
|
||||
println!("[{:?}]", event);
|
||||
|
||||
match event {
|
||||
|
||||
@@ -18,7 +18,7 @@ use crate::x::*;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct dc_apeerstate_t {
|
||||
pub context: *mut dc_context_t,
|
||||
pub context: &dc_context_t,
|
||||
pub addr: *mut libc::c_char,
|
||||
pub last_seen: time_t,
|
||||
pub last_seen_autocrypt: time_t,
|
||||
@@ -35,7 +35,7 @@ pub struct dc_apeerstate_t {
|
||||
}
|
||||
|
||||
/* the returned pointer is ref'd and must be unref'd after usage */
|
||||
pub unsafe fn dc_apeerstate_new(mut context: *mut dc_context_t) -> *mut dc_apeerstate_t {
|
||||
pub unsafe fn dc_apeerstate_new(mut context: &dc_context_t) -> *mut dc_apeerstate_t {
|
||||
let mut peerstate: *mut dc_apeerstate_t = 0 as *mut dc_apeerstate_t;
|
||||
peerstate = calloc(1, ::std::mem::size_of::<dc_apeerstate_t>()) as *mut dc_apeerstate_t;
|
||||
if peerstate.is_null() {
|
||||
|
||||
@@ -10,7 +10,6 @@ use crate::x::*;
|
||||
#[repr(C)]
|
||||
pub struct dc_array_t {
|
||||
pub magic: uint32_t,
|
||||
pub context: *mut dc_context_t,
|
||||
pub allocated: size_t,
|
||||
pub count: size_t,
|
||||
pub type_0: libc::c_int,
|
||||
@@ -262,24 +261,20 @@ pub unsafe fn dc_array_get_raw(mut array: *const dc_array_t) -> *const uintptr_t
|
||||
}
|
||||
return (*array).array;
|
||||
}
|
||||
pub unsafe fn dc_array_new(
|
||||
mut context: *mut dc_context_t,
|
||||
mut initsize: size_t,
|
||||
) -> *mut dc_array_t {
|
||||
return dc_array_new_typed(context, 0i32, initsize);
|
||||
pub unsafe fn dc_array_new(initsize: size_t) -> *mut dc_array_t {
|
||||
dc_array_new_typed(0, initsize)
|
||||
}
|
||||
|
||||
pub unsafe extern "C" fn dc_array_new_typed(
|
||||
mut context: *mut dc_context_t,
|
||||
mut type_0: libc::c_int,
|
||||
mut initsize: size_t,
|
||||
) -> *mut dc_array_t {
|
||||
) -> &dc_array_t {
|
||||
let mut array: *mut dc_array_t = 0 as *mut dc_array_t;
|
||||
array = calloc(1, ::std::mem::size_of::<dc_array_t>()) as *mut dc_array_t;
|
||||
if array.is_null() {
|
||||
exit(47i32);
|
||||
}
|
||||
(*array).magic = 0xa11aai32 as uint32_t;
|
||||
(*array).context = context;
|
||||
(*array).count = 0i32 as size_t;
|
||||
(*array).allocated = if initsize < 1 { 1 } else { initsize };
|
||||
(*array).type_0 = type_0;
|
||||
@@ -304,7 +299,7 @@ pub unsafe fn dc_array_duplicate(mut array: *const dc_array_t) -> *mut dc_array_
|
||||
if array.is_null() || (*array).magic != 0xa11aai32 as libc::c_uint {
|
||||
return 0 as *mut dc_array_t;
|
||||
}
|
||||
ret = dc_array_new((*array).context, (*array).allocated);
|
||||
ret = dc_array_new((*array).allocated);
|
||||
(*ret).count = (*array).count;
|
||||
memcpy(
|
||||
(*ret).array as *mut libc::c_void,
|
||||
|
||||
@@ -35,7 +35,7 @@ pub struct dc_chat_t {
|
||||
|
||||
// handle chats
|
||||
pub unsafe fn dc_create_chat_by_msg_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
) -> uint32_t {
|
||||
let mut chat_id: uint32_t = 0i32 as uint32_t;
|
||||
@@ -82,7 +82,7 @@ pub unsafe fn dc_create_chat_by_msg_id(
|
||||
// only an indicator in a chatlist
|
||||
// only an indicator in a chatlist
|
||||
// larger chat IDs are "real" chats, their messages are "real" messages.
|
||||
pub unsafe fn dc_chat_new(mut context: *mut dc_context_t) -> *mut dc_chat_t {
|
||||
pub unsafe fn dc_chat_new(mut context: &dc_context_t) -> *mut dc_chat_t {
|
||||
let mut chat: *mut dc_chat_t = 0 as *mut dc_chat_t;
|
||||
if context.is_null() || {
|
||||
chat = calloc(1, ::std::mem::size_of::<dc_chat_t>()) as *mut dc_chat_t;
|
||||
@@ -119,11 +119,11 @@ pub unsafe fn dc_chat_empty(mut chat: *mut dc_chat_t) {
|
||||
(*chat).gossiped_timestamp = 0i32 as time_t;
|
||||
dc_param_set_packed((*chat).param, 0 as *const libc::c_char);
|
||||
}
|
||||
pub unsafe fn dc_unblock_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t) {
|
||||
pub unsafe fn dc_unblock_chat(mut context: &dc_context_t, mut chat_id: uint32_t) {
|
||||
dc_block_chat(context, chat_id, 0i32);
|
||||
}
|
||||
pub unsafe fn dc_block_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut new_blocking: libc::c_int,
|
||||
) {
|
||||
@@ -219,7 +219,7 @@ unsafe fn set_from_stmt(mut chat: *mut dc_chat_t, mut row: *mut sqlite3_stmt) ->
|
||||
return row_offset;
|
||||
}
|
||||
pub unsafe fn dc_create_chat_by_contact_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> uint32_t {
|
||||
let mut chat_id: uint32_t = 0i32 as uint32_t;
|
||||
@@ -268,7 +268,7 @@ pub unsafe fn dc_create_chat_by_contact_id(
|
||||
return chat_id;
|
||||
}
|
||||
pub unsafe fn dc_create_or_lookup_nchat_by_contact_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut create_blocked: libc::c_int,
|
||||
mut ret_chat_id: *mut uint32_t,
|
||||
@@ -378,7 +378,7 @@ pub unsafe fn dc_create_or_lookup_nchat_by_contact_id(
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_lookup_real_nchat_by_contact_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut ret_chat_id: *mut uint32_t,
|
||||
mut ret_chat_blocked: *mut libc::c_int,
|
||||
@@ -413,7 +413,7 @@ pub unsafe fn dc_lookup_real_nchat_by_contact_id(
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_get_chat_id_by_contact_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> uint32_t {
|
||||
let mut chat_id: uint32_t = 0i32 as uint32_t;
|
||||
@@ -429,7 +429,7 @@ pub unsafe fn dc_get_chat_id_by_contact_id(
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_prepare_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) -> uint32_t {
|
||||
@@ -451,7 +451,7 @@ pub unsafe fn dc_prepare_msg(
|
||||
return msg_id;
|
||||
}
|
||||
unsafe fn prepare_msg_common(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) -> uint32_t {
|
||||
@@ -550,7 +550,7 @@ unsafe fn prepare_msg_common(
|
||||
return (*msg).id;
|
||||
}
|
||||
unsafe fn prepare_msg_raw(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat: *mut dc_chat_t,
|
||||
mut msg: *const dc_msg_t,
|
||||
mut timestamp: time_t,
|
||||
@@ -959,7 +959,7 @@ pub unsafe fn dc_chat_update_param(mut chat: *mut dc_chat_t) -> libc::c_int {
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_is_contact_in_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -984,7 +984,7 @@ pub unsafe fn dc_is_contact_in_chat(
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_unarchive_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t) {
|
||||
pub unsafe fn dc_unarchive_chat(mut context: &dc_context_t, mut chat_id: uint32_t) {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE chats SET archived=0 WHERE id=?\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -994,7 +994,7 @@ pub unsafe fn dc_unarchive_chat(mut context: *mut dc_context_t, mut chat_id: uin
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_send_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) -> uint32_t {
|
||||
@@ -1051,7 +1051,7 @@ pub unsafe fn dc_send_msg(
|
||||
return (*msg).id;
|
||||
}
|
||||
pub unsafe fn dc_send_text_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut text_to_send: *const libc::c_char,
|
||||
) -> uint32_t {
|
||||
@@ -1069,7 +1069,7 @@ pub unsafe fn dc_send_text_msg(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_set_draft(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) {
|
||||
@@ -1089,7 +1089,7 @@ pub unsafe fn dc_set_draft(
|
||||
};
|
||||
}
|
||||
unsafe fn set_draft_raw(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg: *mut dc_msg_t,
|
||||
) -> libc::c_int {
|
||||
@@ -1171,7 +1171,7 @@ unsafe fn set_draft_raw(
|
||||
free(pathNfilename as *mut libc::c_void);
|
||||
return sth_changed;
|
||||
}
|
||||
unsafe fn get_draft_msg_id(mut context: *mut dc_context_t, mut chat_id: uint32_t) -> uint32_t {
|
||||
unsafe fn get_draft_msg_id(mut context: &dc_context_t, mut chat_id: uint32_t) -> uint32_t {
|
||||
let mut draft_msg_id: uint32_t = 0i32 as uint32_t;
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
@@ -1185,7 +1185,7 @@ unsafe fn get_draft_msg_id(mut context: *mut dc_context_t, mut chat_id: uint32_t
|
||||
sqlite3_finalize(stmt);
|
||||
return draft_msg_id;
|
||||
}
|
||||
pub unsafe fn dc_get_draft(mut context: *mut dc_context_t, mut chat_id: uint32_t) -> *mut dc_msg_t {
|
||||
pub unsafe fn dc_get_draft(mut context: &dc_context_t, mut chat_id: uint32_t) -> *mut dc_msg_t {
|
||||
let mut draft_msg_id: uint32_t = 0i32 as uint32_t;
|
||||
let mut draft_msg: *mut dc_msg_t = 0 as *mut dc_msg_t;
|
||||
if context.is_null()
|
||||
@@ -1206,7 +1206,7 @@ pub unsafe fn dc_get_draft(mut context: *mut dc_context_t, mut chat_id: uint32_t
|
||||
return draft_msg;
|
||||
}
|
||||
pub unsafe fn dc_get_chat_msgs(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut flags: uint32_t,
|
||||
mut marker1before: uint32_t,
|
||||
@@ -1271,7 +1271,7 @@ pub unsafe fn dc_get_chat_msgs(
|
||||
return 0 as *mut dc_array_t;
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_get_msg_cnt(mut context: *mut dc_context_t, mut chat_id: uint32_t) -> libc::c_int {
|
||||
pub unsafe fn dc_get_msg_cnt(mut context: &dc_context_t, mut chat_id: uint32_t) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -1288,7 +1288,7 @@ pub unsafe fn dc_get_msg_cnt(mut context: *mut dc_context_t, mut chat_id: uint32
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_fresh_msg_cnt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
@@ -1307,7 +1307,7 @@ pub unsafe fn dc_get_fresh_msg_cnt(
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_marknoticed_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t) {
|
||||
pub unsafe fn dc_marknoticed_chat(mut context: &dc_context_t, mut chat_id: uint32_t) {
|
||||
let mut check: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut update: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -1336,7 +1336,7 @@ pub unsafe fn dc_marknoticed_chat(mut context: *mut dc_context_t, mut chat_id: u
|
||||
sqlite3_finalize(check);
|
||||
sqlite3_finalize(update);
|
||||
}
|
||||
pub unsafe fn dc_marknoticed_all_chats(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_marknoticed_all_chats(mut context: &dc_context_t) {
|
||||
let mut check: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut update: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -1363,7 +1363,7 @@ pub unsafe fn dc_marknoticed_all_chats(mut context: *mut dc_context_t) {
|
||||
sqlite3_finalize(update);
|
||||
}
|
||||
pub unsafe fn dc_get_chat_media(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut msg_type: libc::c_int,
|
||||
mut msg_type2: libc::c_int,
|
||||
@@ -1404,7 +1404,7 @@ pub unsafe fn dc_get_chat_media(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_next_media(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut curr_msg_id: uint32_t,
|
||||
mut dir: libc::c_int,
|
||||
mut msg_type: libc::c_int,
|
||||
@@ -1456,7 +1456,7 @@ pub unsafe fn dc_get_next_media(
|
||||
return ret_msg_id;
|
||||
}
|
||||
pub unsafe fn dc_archive_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut archive: libc::c_int,
|
||||
) {
|
||||
@@ -1492,7 +1492,7 @@ pub unsafe fn dc_archive_chat(
|
||||
0i32 as uintptr_t,
|
||||
);
|
||||
}
|
||||
pub unsafe fn dc_delete_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t) {
|
||||
pub unsafe fn dc_delete_chat(mut context: &dc_context_t, mut chat_id: uint32_t) {
|
||||
/* Up to 2017-11-02 deleting a group also implied leaving it, see above why we have changed this. */
|
||||
let mut pending_transaction: libc::c_int = 0i32;
|
||||
let mut obj: *mut dc_chat_t = dc_chat_new(context);
|
||||
@@ -1558,7 +1558,7 @@ pub unsafe fn dc_delete_chat(mut context: *mut dc_context_t, mut chat_id: uint32
|
||||
sqlite3_free(q3 as *mut libc::c_void);
|
||||
}
|
||||
pub unsafe fn dc_get_chat_contacts(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
) -> *mut dc_array_t {
|
||||
/* Normal chats do not include SELF. Group chats do (as it may happen that one is deleted from a
|
||||
@@ -1581,7 +1581,7 @@ pub unsafe fn dc_get_chat_contacts(
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t) -> *mut dc_chat_t {
|
||||
pub unsafe fn dc_get_chat(mut context: &dc_context_t, mut chat_id: uint32_t) -> *mut dc_chat_t {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut obj: *mut dc_chat_t = dc_chat_new(context);
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -1598,7 +1598,7 @@ pub unsafe fn dc_get_chat(mut context: *mut dc_context_t, mut chat_id: uint32_t)
|
||||
}
|
||||
// handle group chats
|
||||
pub unsafe fn dc_create_group_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut verified: libc::c_int,
|
||||
mut chat_name: *const libc::c_char,
|
||||
) -> uint32_t {
|
||||
@@ -1656,7 +1656,7 @@ pub unsafe fn dc_create_group_chat(
|
||||
/* you MUST NOT modify this or the following strings */
|
||||
// Context functions to work with chats
|
||||
pub unsafe fn dc_add_to_chat_contacts_table(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -1678,14 +1678,14 @@ pub unsafe fn dc_add_to_chat_contacts_table(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_add_contact_to_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
return dc_add_contact_to_chat_ex(context, chat_id, contact_id, 0i32);
|
||||
}
|
||||
pub unsafe fn dc_add_contact_to_chat_ex(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut flags: libc::c_int,
|
||||
@@ -1807,7 +1807,7 @@ pub unsafe fn dc_add_contact_to_chat_ex(
|
||||
free(self_addr as *mut libc::c_void);
|
||||
return success;
|
||||
}
|
||||
unsafe fn real_group_exists(mut context: *mut dc_context_t, mut chat_id: uint32_t) -> libc::c_int {
|
||||
unsafe fn real_group_exists(mut context: &dc_context_t, mut chat_id: uint32_t) -> libc::c_int {
|
||||
// check if a group or a verified group exists under the given ID
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
@@ -1830,11 +1830,11 @@ unsafe fn real_group_exists(mut context: *mut dc_context_t, mut chat_id: uint32_
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_reset_gossiped_timestamp(mut context: *mut dc_context_t, mut chat_id: uint32_t) {
|
||||
pub unsafe fn dc_reset_gossiped_timestamp(mut context: &dc_context_t, mut chat_id: uint32_t) {
|
||||
dc_set_gossiped_timestamp(context, chat_id, 0i32 as time_t);
|
||||
}
|
||||
pub unsafe fn dc_set_gossiped_timestamp(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut timestamp: time_t,
|
||||
) {
|
||||
@@ -1871,7 +1871,7 @@ pub unsafe fn dc_set_gossiped_timestamp(
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_remove_contact_from_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -1957,7 +1957,7 @@ pub unsafe fn dc_remove_contact_from_chat(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_set_group_explicitly_left(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut grpid: *const libc::c_char,
|
||||
) {
|
||||
if 0 == dc_is_group_explicitly_left(context, grpid) {
|
||||
@@ -1971,7 +1971,7 @@ pub unsafe fn dc_set_group_explicitly_left(
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_is_group_explicitly_left(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut grpid: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
@@ -1984,7 +1984,7 @@ pub unsafe fn dc_is_group_explicitly_left(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_set_chat_name(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut new_name: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
@@ -2057,7 +2057,7 @@ pub unsafe fn dc_set_chat_name(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_set_chat_profile_image(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut new_image: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
@@ -2140,7 +2140,7 @@ pub unsafe fn dc_set_chat_profile_image(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_forward_msgs(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_ids: *const uint32_t,
|
||||
mut msg_cnt: libc::c_int,
|
||||
mut chat_id: uint32_t,
|
||||
@@ -2321,7 +2321,7 @@ pub unsafe extern "C" fn dc_chat_get_subtitle(mut chat: *const dc_chat_t) -> *mu
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_get_chat_contact_cnt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
@@ -2408,7 +2408,7 @@ pub unsafe fn dc_chat_is_sending_locations(mut chat: *const dc_chat_t) -> libc::
|
||||
}
|
||||
return (*chat).is_sending_locations;
|
||||
}
|
||||
pub unsafe fn dc_get_chat_cnt(mut context: *mut dc_context_t) -> size_t {
|
||||
pub unsafe fn dc_get_chat_cnt(mut context: &dc_context_t) -> size_t {
|
||||
let mut ret: size_t = 0i32 as size_t;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null()
|
||||
@@ -2429,7 +2429,7 @@ pub unsafe fn dc_get_chat_cnt(mut context: *mut dc_context_t) -> size_t {
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_chat_id_by_grpid(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut grpid: *const libc::c_char,
|
||||
mut ret_blocked: *mut libc::c_int,
|
||||
mut ret_verified: *mut libc::c_int,
|
||||
@@ -2463,7 +2463,7 @@ pub unsafe fn dc_get_chat_id_by_grpid(
|
||||
return chat_id;
|
||||
}
|
||||
pub unsafe fn dc_add_device_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut text: *const libc::c_char,
|
||||
) {
|
||||
|
||||
@@ -17,14 +17,14 @@ use crate::x::*;
|
||||
#[repr(C)]
|
||||
pub struct dc_chatlist_t {
|
||||
pub magic: uint32_t,
|
||||
pub context: *mut dc_context_t,
|
||||
pub context: &dc_context_t,
|
||||
pub cnt: size_t,
|
||||
pub chatNlastmsg_ids: *mut dc_array_t,
|
||||
}
|
||||
|
||||
// handle chatlists
|
||||
pub unsafe fn dc_get_chatlist(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut listflags: libc::c_int,
|
||||
mut query_str: *const libc::c_char,
|
||||
mut query_id: uint32_t,
|
||||
@@ -81,7 +81,7 @@ pub unsafe fn dc_get_chatlist(
|
||||
* Rendering the deaddrop in the described way
|
||||
* would not add extra work in the UI then.
|
||||
*/
|
||||
pub unsafe fn dc_chatlist_new(mut context: *mut dc_context_t) -> *mut dc_chatlist_t {
|
||||
pub unsafe fn dc_chatlist_new(mut context: &dc_context_t) -> *mut dc_chatlist_t {
|
||||
let mut chatlist: *mut dc_chatlist_t = 0 as *mut dc_chatlist_t;
|
||||
chatlist = calloc(1, ::std::mem::size_of::<dc_chatlist_t>()) as *mut dc_chatlist_t;
|
||||
if chatlist.is_null() {
|
||||
@@ -221,7 +221,7 @@ unsafe fn dc_chatlist_load_from_db(
|
||||
return success;
|
||||
}
|
||||
// Context functions to work with chatlist
|
||||
pub unsafe fn dc_get_archived_cnt(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_get_archived_cnt(mut context: &dc_context_t) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
@@ -234,7 +234,7 @@ pub unsafe fn dc_get_archived_cnt(mut context: *mut dc_context_t) -> libc::c_int
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
unsafe fn get_last_deaddrop_fresh_msg(mut context: *mut dc_context_t) -> uint32_t {
|
||||
unsafe fn get_last_deaddrop_fresh_msg(mut context: &dc_context_t) -> uint32_t {
|
||||
let mut ret: uint32_t = 0i32 as uint32_t;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
stmt =
|
||||
@@ -355,7 +355,7 @@ pub unsafe fn dc_chatlist_get_summary(
|
||||
dc_chat_unref(chat_to_delete);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_chatlist_get_context(mut chatlist: *mut dc_chatlist_t) -> *mut dc_context_t {
|
||||
pub unsafe fn dc_chatlist_get_context(mut chatlist: *mut dc_chatlist_t) -> &dc_context_t {
|
||||
if chatlist.is_null() || (*chatlist).magic != 0xc4a71157u32 {
|
||||
return 0 as *mut dc_context_t;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ pub struct outlk_autodiscover_t {
|
||||
pub redirect: *mut libc::c_char,
|
||||
}
|
||||
// connect
|
||||
pub unsafe fn dc_configure(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_configure(mut context: &dc_context_t) {
|
||||
if 0 != dc_has_ongoing(context) {
|
||||
dc_log_warning(
|
||||
context,
|
||||
@@ -71,7 +71,7 @@ pub unsafe fn dc_configure(mut context: *mut dc_context_t) {
|
||||
dc_job_kill_action(context, 900i32);
|
||||
dc_job_add(context, 900i32, 0i32, 0 as *const libc::c_char, 0i32);
|
||||
}
|
||||
pub unsafe fn dc_has_ongoing(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_has_ongoing(mut context: &dc_context_t) -> libc::c_int {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return 0i32;
|
||||
}
|
||||
@@ -81,7 +81,7 @@ pub unsafe fn dc_has_ongoing(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
0i32
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_is_configured(mut context: *const dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_is_configured(mut context: &dc_context_t) -> libc::c_int {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return 0i32;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ pub unsafe fn dc_is_configured(mut context: *const dc_context_t) -> libc::c_int
|
||||
0i32
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_stop_ongoing_process(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_stop_ongoing_process(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -116,7 +116,7 @@ pub unsafe fn dc_stop_ongoing_process(mut context: *mut dc_context_t) {
|
||||
};
|
||||
}
|
||||
// the other dc_job_do_DC_JOB_*() functions are declared static in the c-file
|
||||
pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: *mut dc_context_t, _job: *mut dc_job_t) {
|
||||
pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: &dc_context_t, _job: *mut dc_job_t) {
|
||||
let mut flags: libc::c_int = 0;
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
@@ -1323,7 +1323,7 @@ pub unsafe fn dc_job_do_DC_JOB_CONFIGURE_IMAP(context: *mut dc_context_t, _job:
|
||||
);
|
||||
}
|
||||
|
||||
pub unsafe fn dc_free_ongoing(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_free_ongoing(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1331,7 +1331,7 @@ pub unsafe fn dc_free_ongoing(mut context: *mut dc_context_t) {
|
||||
(*context).shall_stop_ongoing = 1i32;
|
||||
}
|
||||
pub unsafe fn dc_configure_folders(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut imap: *mut dc_imap_t,
|
||||
mut flags: libc::c_int,
|
||||
) {
|
||||
@@ -1634,7 +1634,7 @@ unsafe fn get_folder_meaning(mut flags: *mut mailimap_mbx_list_flags) -> libc::c
|
||||
return ret_meaning;
|
||||
}
|
||||
unsafe fn moz_autoconfigure(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut url: *const libc::c_char,
|
||||
mut param_in: *const dc_loginparam_t,
|
||||
) -> *mut dc_loginparam_t {
|
||||
@@ -1859,7 +1859,7 @@ unsafe fn moz_autoconfigure_starttag_cb(
|
||||
};
|
||||
}
|
||||
unsafe fn read_autoconf_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut url: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
let mut filecontent: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -1887,7 +1887,7 @@ unsafe fn read_autoconf_file(
|
||||
return filecontent;
|
||||
}
|
||||
unsafe fn outlk_autodiscover(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut url__: *const libc::c_char,
|
||||
mut param_in: *const dc_loginparam_t,
|
||||
) -> *mut dc_loginparam_t {
|
||||
@@ -2071,7 +2071,7 @@ unsafe fn outlk_autodiscover_starttag_cb(
|
||||
(*outlk_ad).tag_config = 5i32
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_alloc_ongoing(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_alloc_ongoing(mut context: &dc_context_t) -> libc::c_int {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return 0i32;
|
||||
}
|
||||
@@ -2089,7 +2089,7 @@ pub unsafe fn dc_alloc_ongoing(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
return 1i32;
|
||||
}
|
||||
pub unsafe fn dc_connect_to_configured_imap(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut imap: *mut dc_imap_t,
|
||||
) -> libc::c_int {
|
||||
let mut ret_connected: libc::c_int = 0i32;
|
||||
|
||||
@@ -30,7 +30,7 @@ pub struct dc_contact_t {
|
||||
pub origin: libc::c_int,
|
||||
}
|
||||
|
||||
pub unsafe fn dc_marknoticed_contact(mut context: *mut dc_context_t, mut contact_id: uint32_t) {
|
||||
pub unsafe fn dc_marknoticed_contact(mut context: &dc_context_t, mut contact_id: uint32_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ pub unsafe extern "C" fn dc_may_be_valid_addr(mut addr: *const libc::c_char) ->
|
||||
return 1i32;
|
||||
}
|
||||
pub unsafe fn dc_lookup_contact_id_by_addr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
) -> uint32_t {
|
||||
let mut contact_id: libc::c_int = 0i32;
|
||||
@@ -130,7 +130,7 @@ pub unsafe fn dc_addr_normalize(mut addr: *const libc::c_char) -> *mut libc::c_c
|
||||
return addr_normalized;
|
||||
}
|
||||
pub unsafe fn dc_create_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut name: *const libc::c_char,
|
||||
mut addr: *const libc::c_char,
|
||||
) -> uint32_t {
|
||||
@@ -161,7 +161,7 @@ pub unsafe fn dc_create_contact(
|
||||
return contact_id;
|
||||
}
|
||||
pub unsafe fn dc_block_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut new_blocking: libc::c_int,
|
||||
) {
|
||||
@@ -243,7 +243,7 @@ pub unsafe fn dc_block_contact(
|
||||
* dc_create_contact() or dc_add_address_book())
|
||||
* only affect the given-name.
|
||||
*/
|
||||
pub unsafe fn dc_contact_new(mut context: *mut dc_context_t) -> *mut dc_contact_t {
|
||||
pub unsafe fn dc_contact_new(mut context: &dc_context_t) -> *mut dc_contact_t {
|
||||
let mut contact: *mut dc_contact_t = 0 as *mut dc_contact_t;
|
||||
contact = calloc(1, ::std::mem::size_of::<dc_contact_t>()) as *mut dc_contact_t;
|
||||
if contact.is_null() {
|
||||
@@ -341,7 +341,7 @@ pub unsafe fn dc_contact_load_from_db(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_is_contact_blocked(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut is_blocked: libc::c_int = 0i32;
|
||||
@@ -356,7 +356,7 @@ pub unsafe fn dc_is_contact_blocked(
|
||||
}
|
||||
/*can be NULL*/
|
||||
pub unsafe fn dc_add_or_lookup_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut name: *const libc::c_char,
|
||||
mut addr__: *const libc::c_char,
|
||||
mut origin: libc::c_int,
|
||||
@@ -541,7 +541,7 @@ pub unsafe fn dc_add_or_lookup_contact(
|
||||
return row_id;
|
||||
}
|
||||
pub unsafe fn dc_add_address_book(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut adr_book: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut lines: *mut carray = 0 as *mut carray;
|
||||
@@ -619,7 +619,7 @@ pub unsafe fn dc_normalize_name(mut full_name: *mut libc::c_char) {
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_get_contacts(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut listflags: uint32_t,
|
||||
mut query: *const libc::c_char,
|
||||
) -> *mut dc_array_t {
|
||||
@@ -713,7 +713,7 @@ pub unsafe fn dc_get_contacts(
|
||||
free(self_name2 as *mut libc::c_void);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_blocked_cnt(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_get_blocked_cnt(mut context: &dc_context_t) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -730,7 +730,7 @@ pub unsafe fn dc_get_blocked_cnt(mut context: *mut dc_context_t) -> libc::c_int
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_blocked_contacts(mut context: *mut dc_context_t) -> *mut dc_array_t {
|
||||
pub unsafe fn dc_get_blocked_contacts(mut context: &dc_context_t) -> *mut dc_array_t {
|
||||
let mut ret: *mut dc_array_t = dc_array_new(context, 100i32 as size_t);
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
@@ -748,7 +748,7 @@ pub unsafe fn dc_get_blocked_contacts(mut context: *mut dc_context_t) -> *mut dc
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_contact_encrinfo(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
let mut ret: dc_strbuilder_t = dc_strbuilder_t {
|
||||
@@ -890,7 +890,7 @@ unsafe fn cat_fingerprint(
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_delete_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
@@ -939,7 +939,7 @@ pub unsafe fn dc_delete_contact(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_get_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> *mut dc_contact_t {
|
||||
let mut ret: *mut dc_contact_t = dc_contact_new(context);
|
||||
@@ -1099,7 +1099,7 @@ pub unsafe fn dc_addr_cmp(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_addr_equals_self(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
@@ -1125,7 +1125,7 @@ pub unsafe fn dc_addr_equals_self(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_addr_equals_contact(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -1146,7 +1146,7 @@ pub unsafe fn dc_addr_equals_contact(
|
||||
return addr_are_equal;
|
||||
}
|
||||
// Context functions to work with contacts
|
||||
pub unsafe fn dc_get_real_contact_cnt(mut context: *mut dc_context_t) -> size_t {
|
||||
pub unsafe fn dc_get_real_contact_cnt(mut context: &dc_context_t) -> size_t {
|
||||
let mut ret: size_t = 0i32 as size_t;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null()
|
||||
@@ -1166,7 +1166,7 @@ pub unsafe fn dc_get_real_contact_cnt(mut context: *mut dc_context_t) -> size_t
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_contact_origin(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut ret_blocked: *mut libc::c_int,
|
||||
) -> libc::c_int {
|
||||
@@ -1189,7 +1189,7 @@ pub unsafe fn dc_get_contact_origin(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_real_contact_exists(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
@@ -1212,7 +1212,7 @@ pub unsafe fn dc_real_contact_exists(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_scaleup_contact_origin(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut origin: libc::c_int,
|
||||
) {
|
||||
|
||||
@@ -33,7 +33,7 @@ pub struct dc_e2ee_helper_t {
|
||||
}
|
||||
|
||||
pub unsafe fn dc_e2ee_encrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut recipients_addr: *const clist,
|
||||
mut force_unencrypted: libc::c_int,
|
||||
mut e2ee_guaranteed: libc::c_int,
|
||||
@@ -54,7 +54,7 @@ pub unsafe fn dc_e2ee_encrypt(
|
||||
let mut plain: *mut MMAPString = mmap_string_new(b"\x00" as *const u8 as *const libc::c_char);
|
||||
let mut ctext: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut ctext_bytes: size_t = 0i32 as size_t;
|
||||
let mut peerstates: *mut dc_array_t = dc_array_new(0 as *mut dc_context_t, 10i32 as size_t);
|
||||
let mut peerstates: &dc_array_t = dc_array_new(0 as *mut dc_context_t, 10i32 as size_t);
|
||||
if !helper.is_null() {
|
||||
memset(
|
||||
helper as *mut libc::c_void,
|
||||
@@ -505,7 +505,7 @@ unsafe fn new_data_part(
|
||||
* Generate Keypairs
|
||||
******************************************************************************/
|
||||
unsafe fn load_or_generate_self_public_key(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut public_key: *mut dc_key_t,
|
||||
mut self_addr: *const libc::c_char,
|
||||
mut random_data_mime: *mut mailmime,
|
||||
@@ -619,7 +619,7 @@ unsafe fn load_or_generate_self_public_key(
|
||||
}
|
||||
/* returns 1 if sth. was decrypted, 0 in other cases */
|
||||
pub unsafe fn dc_e2ee_decrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut in_out_message: *mut mailmime,
|
||||
mut helper: *mut dc_e2ee_helper_t,
|
||||
) {
|
||||
@@ -753,7 +753,7 @@ pub unsafe fn dc_e2ee_decrypt(
|
||||
free(self_addr as *mut libc::c_void);
|
||||
}
|
||||
unsafe fn update_gossip_peerstates(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut message_time: time_t,
|
||||
mut imffields: *mut mailimf_fields,
|
||||
mut gossip_headers: *const mailimf_fields,
|
||||
@@ -845,7 +845,7 @@ unsafe fn update_gossip_peerstates(
|
||||
return gossipped_addr;
|
||||
}
|
||||
unsafe fn decrypt_recursive(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime: *mut mailmime,
|
||||
mut private_keyring: *const dc_keyring_t,
|
||||
mut public_keyring_for_validate: *const dc_keyring_t,
|
||||
@@ -950,7 +950,7 @@ unsafe fn decrypt_recursive(
|
||||
return 0i32;
|
||||
}
|
||||
unsafe fn decrypt_part(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime: *mut mailmime,
|
||||
mut private_keyring: *const dc_keyring_t,
|
||||
mut public_keyring_for_validate: *const dc_keyring_t,
|
||||
@@ -1192,7 +1192,7 @@ pub unsafe fn dc_e2ee_thanks(mut helper: *mut dc_e2ee_helper_t) {
|
||||
};
|
||||
}
|
||||
/* makes sure, the private key exists, needed only for exporting keys and the case no message was sent before */
|
||||
pub unsafe fn dc_ensure_secret_key_exists(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_ensure_secret_key_exists(mut context: &dc_context_t) -> libc::c_int {
|
||||
/* normally, the key is generated as soon as the first mail is send
|
||||
(this is to gain some extra-random-seed by the message content and the timespan between program start and message sending) */
|
||||
let mut success: libc::c_int = 0i32;
|
||||
|
||||
1519
src/dc_imap.rs
1519
src/dc_imap.rs
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ use crate::x::*;
|
||||
// param1 is a directory where the backup is written to
|
||||
// param1 is the file with the backup to import
|
||||
pub unsafe fn dc_imex(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut what: libc::c_int,
|
||||
mut param1: *const libc::c_char,
|
||||
mut param2: *const libc::c_char,
|
||||
@@ -40,7 +40,7 @@ pub unsafe fn dc_imex(
|
||||
dc_param_unref(param);
|
||||
}
|
||||
pub unsafe fn dc_imex_has_backup(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut dir_name: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
let mut ret: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -117,7 +117,7 @@ pub unsafe fn dc_imex_has_backup(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_check_password(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut test_pw: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
/* Check if the given password matches the configured mail_pw.
|
||||
@@ -145,7 +145,7 @@ pub unsafe fn dc_check_password(
|
||||
dc_loginparam_unref(loginparam);
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_initiate_key_transfer(mut context: *mut dc_context_t) -> *mut libc::c_char {
|
||||
pub unsafe fn dc_initiate_key_transfer(mut context: &dc_context_t) -> *mut libc::c_char {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut setup_code: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -247,7 +247,7 @@ pub unsafe fn dc_initiate_key_transfer(mut context: *mut dc_context_t) -> *mut l
|
||||
return setup_code;
|
||||
}
|
||||
pub unsafe extern "C" fn dc_render_setup_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut passphrase: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
@@ -335,7 +335,7 @@ pub unsafe extern "C" fn dc_render_setup_file(
|
||||
free(self_addr as *mut libc::c_void);
|
||||
return ret_setupfilecontent;
|
||||
}
|
||||
pub unsafe fn dc_create_setup_code(_context: *mut dc_context_t) -> *mut libc::c_char {
|
||||
pub unsafe fn dc_create_setup_code(_context: &dc_context_t) -> *mut libc::c_char {
|
||||
let mut random_val: uint16_t = 0i32 as uint16_t;
|
||||
let mut i: libc::c_int = 0i32;
|
||||
let mut ret: dc_strbuilder_t = dc_strbuilder_t {
|
||||
@@ -370,7 +370,7 @@ pub unsafe fn dc_create_setup_code(_context: *mut dc_context_t) -> *mut libc::c_
|
||||
return ret.buf;
|
||||
}
|
||||
pub unsafe fn dc_continue_key_transfer(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
mut setup_code: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
@@ -449,7 +449,7 @@ pub unsafe fn dc_continue_key_transfer(
|
||||
return success;
|
||||
}
|
||||
unsafe fn set_self_key(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut armored: *const libc::c_char,
|
||||
mut set_default: libc::c_int,
|
||||
) -> libc::c_int {
|
||||
@@ -567,7 +567,7 @@ unsafe fn set_self_key(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_decrypt_setup_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut passphrase: *const libc::c_char,
|
||||
mut filecontent: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -631,7 +631,7 @@ pub unsafe fn dc_decrypt_setup_file(
|
||||
return payload;
|
||||
}
|
||||
pub unsafe fn dc_normalize_setup_code(
|
||||
_context: *mut dc_context_t,
|
||||
_context: &dc_context_t,
|
||||
in_0: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
if in_0.is_null() {
|
||||
@@ -670,7 +670,7 @@ pub unsafe fn dc_normalize_setup_code(
|
||||
}
|
||||
return out.buf;
|
||||
}
|
||||
pub unsafe fn dc_job_do_DC_JOB_IMEX_IMAP(mut context: *mut dc_context_t, mut job: *mut dc_job_t) {
|
||||
pub unsafe fn dc_job_do_DC_JOB_IMEX_IMAP(mut context: &dc_context_t, mut job: *mut dc_job_t) {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut ongoing_allocated_here: libc::c_int = 0i32;
|
||||
@@ -933,7 +933,7 @@ pub unsafe fn dc_job_do_DC_JOB_IMEX_IMAP(mut context: *mut dc_context_t, mut job
|
||||
* Import backup
|
||||
******************************************************************************/
|
||||
unsafe fn import_backup(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut backup_to_import: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
@@ -1074,10 +1074,7 @@ unsafe fn import_backup(
|
||||
******************************************************************************/
|
||||
/* the FILE_PROGRESS macro calls the callback with the permille of files processed.
|
||||
The macro avoids weird values of 0% or 100% while still working. */
|
||||
unsafe fn export_backup(
|
||||
mut context: *mut dc_context_t,
|
||||
mut dir: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
unsafe fn export_backup(mut context: &dc_context_t, mut dir: *const libc::c_char) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut closed: libc::c_int = 0i32;
|
||||
@@ -1360,7 +1357,7 @@ unsafe fn import_self_keys(
|
||||
Maybe we should make the "default" key handlong also a little bit smarter
|
||||
(currently, the last imported key is the standard key unless it contains the string "legacy" in its name) */
|
||||
let mut imported_cnt: libc::c_int = 0i32;
|
||||
let mut dir_handle: *mut DIR = 0 as *mut DIR;
|
||||
let mut dir_handle: &DIR = 0 as *mut DIR;
|
||||
let mut dir_entry: *mut dirent = 0 as *mut dirent;
|
||||
let mut suffix: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut path_plus_name: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -1489,7 +1486,7 @@ unsafe fn export_self_keys(
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut export_errors: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut id: libc::c_int = 0i32;
|
||||
let mut is_default: libc::c_int = 0i32;
|
||||
let mut public_key: *mut dc_key_t = dc_key_new();
|
||||
@@ -1532,7 +1529,7 @@ unsafe fn export_key_to_asc_file(
|
||||
mut is_default: libc::c_int,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut file_name: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut file_name: &libc::c_char = 0 as *mut libc::c_char;
|
||||
if 0 != is_default {
|
||||
file_name = dc_mprintf(
|
||||
b"%s/%s-key-default.asc\x00" as *const u8 as *const libc::c_char,
|
||||
|
||||
@@ -45,7 +45,7 @@ pub struct dc_job_t {
|
||||
pub pending_error: *mut libc::c_char,
|
||||
}
|
||||
|
||||
pub unsafe fn dc_perform_imap_jobs(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_imap_jobs(mut context: &dc_context_t) {
|
||||
dc_log_info(
|
||||
context,
|
||||
0i32,
|
||||
@@ -66,7 +66,7 @@ pub unsafe fn dc_perform_imap_jobs(mut context: *mut dc_context_t) {
|
||||
);
|
||||
}
|
||||
unsafe fn dc_job_perform(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut thread: libc::c_int,
|
||||
mut probe_network: libc::c_int,
|
||||
) {
|
||||
@@ -244,7 +244,7 @@ unsafe fn dc_job_perform(
|
||||
free(job.pending_error as *mut libc::c_void);
|
||||
sqlite3_finalize(select_stmt);
|
||||
}
|
||||
unsafe fn dc_job_delete(mut context: *mut dc_context_t, mut job: *const dc_job_t) {
|
||||
unsafe fn dc_job_delete(mut context: &dc_context_t, mut job: *const dc_job_t) {
|
||||
let mut delete_stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"DELETE FROM jobs WHERE id=?;\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -268,7 +268,7 @@ unsafe fn get_backoff_time_offset(mut c_tries: libc::c_int) -> time_t {
|
||||
}
|
||||
return seconds;
|
||||
}
|
||||
unsafe fn dc_job_update(mut context: *mut dc_context_t, mut job: *const dc_job_t) {
|
||||
unsafe fn dc_job_update(mut context: &dc_context_t, mut job: *const dc_job_t) {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE jobs SET desired_timestamp=?, tries=?, param=? WHERE id=?;\x00" as *const u8
|
||||
@@ -281,7 +281,7 @@ unsafe fn dc_job_update(mut context: *mut dc_context_t, mut job: *const dc_job_t
|
||||
sqlite3_step(stmt);
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
unsafe fn dc_suspend_smtp_thread(mut context: *mut dc_context_t, mut suspend: libc::c_int) {
|
||||
unsafe fn dc_suspend_smtp_thread(mut context: &dc_context_t, mut suspend: libc::c_int) {
|
||||
pthread_mutex_lock(&mut (*context).smtpidle_condmutex);
|
||||
(*context).smtp_suspended = suspend;
|
||||
pthread_mutex_unlock(&mut (*context).smtpidle_condmutex);
|
||||
@@ -297,7 +297,7 @@ unsafe fn dc_suspend_smtp_thread(mut context: *mut dc_context_t, mut suspend: li
|
||||
}
|
||||
};
|
||||
}
|
||||
unsafe extern "C" fn dc_job_do_DC_JOB_SEND(mut context: *mut dc_context_t, mut job: *mut dc_job_t) {
|
||||
unsafe extern "C" fn dc_job_do_DC_JOB_SEND(mut context: &dc_context_t, mut job: *mut dc_job_t) {
|
||||
let mut current_block: u64;
|
||||
let mut filename: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut buf: *mut libc::c_void = 0 as *mut libc::c_void;
|
||||
@@ -446,7 +446,7 @@ pub unsafe fn dc_job_try_again_later(
|
||||
free((*job).pending_error as *mut libc::c_void);
|
||||
(*job).pending_error = dc_strdup_keep_null(pending_error);
|
||||
}
|
||||
unsafe fn dc_job_do_DC_JOB_MOVE_MSG(mut context: *mut dc_context_t, mut job: *mut dc_job_t) {
|
||||
unsafe fn dc_job_do_DC_JOB_MOVE_MSG(mut context: &dc_context_t, mut job: *mut dc_job_t) {
|
||||
let mut current_block: u64;
|
||||
let mut msg: *mut dc_msg_t = dc_msg_new_untyped(context);
|
||||
let mut dest_folder: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -530,7 +530,7 @@ unsafe fn dc_job_do_DC_JOB_MOVE_MSG(mut context: *mut dc_context_t, mut job: *mu
|
||||
/* ******************************************************************************
|
||||
* IMAP-jobs
|
||||
******************************************************************************/
|
||||
unsafe fn connect_to_inbox(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
unsafe fn connect_to_inbox(mut context: &dc_context_t) -> libc::c_int {
|
||||
let mut ret_connected: libc::c_int = 0i32;
|
||||
ret_connected = dc_connect_to_configured_imap(context, (*context).inbox);
|
||||
if !(0 == ret_connected) {
|
||||
@@ -542,7 +542,7 @@ unsafe fn connect_to_inbox(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
return ret_connected;
|
||||
}
|
||||
unsafe fn dc_job_do_DC_JOB_MARKSEEN_MDN_ON_IMAP(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut job: *mut dc_job_t,
|
||||
) {
|
||||
let mut current_block: u64;
|
||||
@@ -599,7 +599,7 @@ unsafe fn dc_job_do_DC_JOB_MARKSEEN_MDN_ON_IMAP(
|
||||
free(dest_folder as *mut libc::c_void);
|
||||
}
|
||||
unsafe fn dc_job_do_DC_JOB_MARKSEEN_MSG_ON_IMAP(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut job: *mut dc_job_t,
|
||||
) {
|
||||
let mut current_block: u64;
|
||||
@@ -741,7 +741,7 @@ unsafe fn dc_job_do_DC_JOB_MARKSEEN_MSG_ON_IMAP(
|
||||
}
|
||||
dc_msg_unref(msg);
|
||||
}
|
||||
unsafe fn dc_send_mdn(mut context: *mut dc_context_t, mut msg_id: uint32_t) {
|
||||
unsafe fn dc_send_mdn(mut context: &dc_context_t, mut msg_id: uint32_t) {
|
||||
let mut mimefactory: dc_mimefactory_t = dc_mimefactory_t {
|
||||
from_addr: 0 as *mut libc::c_char,
|
||||
from_displayname: 0 as *mut libc::c_char,
|
||||
@@ -762,7 +762,7 @@ unsafe fn dc_send_mdn(mut context: *mut dc_context_t, mut msg_id: uint32_t) {
|
||||
out_gossiped: 0,
|
||||
out_last_added_location_id: 0,
|
||||
error: 0 as *mut libc::c_char,
|
||||
context: 0 as *mut dc_context_t,
|
||||
context: 0 as &dc_context_t,
|
||||
};
|
||||
dc_mimefactory_init(&mut mimefactory, context);
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
@@ -787,7 +787,7 @@ unsafe fn dc_send_mdn(mut context: *mut dc_context_t, mut msg_id: uint32_t) {
|
||||
* @return 1=success, 0=error
|
||||
*/
|
||||
unsafe fn dc_add_smtp_job(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut action: libc::c_int,
|
||||
mut mimefactory: *mut dc_mimefactory_t,
|
||||
) -> libc::c_int {
|
||||
@@ -851,7 +851,7 @@ unsafe fn dc_add_smtp_job(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_job_add(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut action: libc::c_int,
|
||||
mut foreign_id: libc::c_int,
|
||||
mut param: *const libc::c_char,
|
||||
@@ -899,7 +899,7 @@ pub unsafe fn dc_job_add(
|
||||
dc_interrupt_smtp_idle(context);
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_interrupt_smtp_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_interrupt_smtp_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
dc_log_warning(
|
||||
context,
|
||||
@@ -919,7 +919,7 @@ pub unsafe fn dc_interrupt_smtp_idle(mut context: *mut dc_context_t) {
|
||||
pthread_cond_signal(&mut (*context).smtpidle_cond);
|
||||
pthread_mutex_unlock(&mut (*context).smtpidle_condmutex);
|
||||
}
|
||||
pub unsafe fn dc_interrupt_imap_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_interrupt_imap_idle(mut context: &dc_context_t) {
|
||||
if context.is_null()
|
||||
|| (*context).magic != 0x11a11807i32 as libc::c_uint
|
||||
|| (*context).inbox.is_null()
|
||||
@@ -941,10 +941,7 @@ pub unsafe fn dc_interrupt_imap_idle(mut context: *mut dc_context_t) {
|
||||
drop(l);
|
||||
dc_imap_interrupt_idle((*context).inbox);
|
||||
}
|
||||
unsafe fn dc_job_do_DC_JOB_DELETE_MSG_ON_IMAP(
|
||||
mut context: *mut dc_context_t,
|
||||
mut job: *mut dc_job_t,
|
||||
) {
|
||||
unsafe fn dc_job_do_DC_JOB_DELETE_MSG_ON_IMAP(mut context: &dc_context_t, mut job: *mut dc_job_t) {
|
||||
let mut current_block: u64;
|
||||
let mut delete_from_server: libc::c_int = 1i32;
|
||||
let mut msg: *mut dc_msg_t = dc_msg_new_untyped(context);
|
||||
@@ -1008,7 +1005,7 @@ pub unsafe fn dc_job_kill_action(mut context: *mut dc_context_t, mut action: lib
|
||||
if context.is_null() {
|
||||
return;
|
||||
}
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"DELETE FROM jobs WHERE action=?;\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
@@ -1055,7 +1052,7 @@ pub unsafe fn dc_perform_imap_fetch(mut context: *mut dc_context_t) {
|
||||
clock().wrapping_sub(start) as libc::c_double * 1000.0f64 / 1000000i32 as libc::c_double,
|
||||
);
|
||||
}
|
||||
pub unsafe fn dc_perform_imap_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_imap_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1084,7 +1081,7 @@ pub unsafe fn dc_perform_imap_idle(mut context: *mut dc_context_t) {
|
||||
b"INBOX-IDLE ended.\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
}
|
||||
pub unsafe fn dc_perform_mvbox_fetch(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_mvbox_fetch(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1095,7 +1092,7 @@ pub unsafe fn dc_perform_mvbox_fetch(mut context: *mut dc_context_t) {
|
||||
);
|
||||
dc_jobthread_fetch(&mut (*context).mvbox_thread, use_network);
|
||||
}
|
||||
pub unsafe fn dc_perform_mvbox_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_mvbox_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1106,7 +1103,7 @@ pub unsafe fn dc_perform_mvbox_idle(mut context: *mut dc_context_t) {
|
||||
);
|
||||
dc_jobthread_idle(&mut (*context).mvbox_thread, use_network);
|
||||
}
|
||||
pub unsafe fn dc_interrupt_mvbox_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_interrupt_mvbox_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
dc_log_warning(
|
||||
context,
|
||||
@@ -1117,7 +1114,7 @@ pub unsafe fn dc_interrupt_mvbox_idle(mut context: *mut dc_context_t) {
|
||||
}
|
||||
dc_jobthread_interrupt_idle(&mut (*context).mvbox_thread);
|
||||
}
|
||||
pub unsafe fn dc_perform_sentbox_fetch(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_sentbox_fetch(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1128,7 +1125,7 @@ pub unsafe fn dc_perform_sentbox_fetch(mut context: *mut dc_context_t) {
|
||||
);
|
||||
dc_jobthread_fetch(&mut (*context).sentbox_thread, use_network);
|
||||
}
|
||||
pub unsafe fn dc_perform_sentbox_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_sentbox_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
return;
|
||||
}
|
||||
@@ -1139,7 +1136,7 @@ pub unsafe fn dc_perform_sentbox_idle(mut context: *mut dc_context_t) {
|
||||
);
|
||||
dc_jobthread_idle(&mut (*context).sentbox_thread, use_network);
|
||||
}
|
||||
pub unsafe fn dc_interrupt_sentbox_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_interrupt_sentbox_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
dc_log_warning(
|
||||
context,
|
||||
@@ -1150,7 +1147,7 @@ pub unsafe fn dc_interrupt_sentbox_idle(mut context: *mut dc_context_t) {
|
||||
}
|
||||
dc_jobthread_interrupt_idle(&mut (*context).sentbox_thread);
|
||||
}
|
||||
pub unsafe fn dc_perform_smtp_jobs(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_smtp_jobs(mut context: &dc_context_t) {
|
||||
pthread_mutex_lock(&mut (*context).smtpidle_condmutex);
|
||||
let mut probe_smtp_network: libc::c_int = (*context).probe_smtp_network;
|
||||
(*context).probe_smtp_network = 0i32;
|
||||
@@ -1181,7 +1178,7 @@ pub unsafe fn dc_perform_smtp_jobs(mut context: *mut dc_context_t) {
|
||||
(*context).smtp_doing_jobs = 0i32;
|
||||
pthread_mutex_unlock(&mut (*context).smtpidle_condmutex);
|
||||
}
|
||||
pub unsafe fn dc_perform_smtp_idle(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_perform_smtp_idle(mut context: &dc_context_t) {
|
||||
if context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint {
|
||||
dc_log_warning(
|
||||
context,
|
||||
@@ -1210,7 +1207,7 @@ pub unsafe fn dc_perform_smtp_idle(mut context: *mut dc_context_t) {
|
||||
tv_nsec: 0,
|
||||
};
|
||||
memset(
|
||||
&mut wakeup_at as *mut timespec as *mut libc::c_void,
|
||||
&mut wakeup_at as ×pec as *mut libc::c_void,
|
||||
0,
|
||||
::std::mem::size_of::<timespec>(),
|
||||
);
|
||||
@@ -1244,7 +1241,7 @@ unsafe fn get_next_wakeup_time(mut context: *mut dc_context_t, mut thread: libc:
|
||||
wakeup_time = sqlite3_column_int(stmt, 0i32) as time_t
|
||||
}
|
||||
if wakeup_time == 0i32 as libc::c_long {
|
||||
wakeup_time = time(0 as *mut time_t) + (10i32 * 60i32) as libc::c_long
|
||||
wakeup_time = time(0 as &time_t) + (10i32 * 60i32) as libc::c_long
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
return wakeup_time;
|
||||
@@ -1262,11 +1259,11 @@ pub unsafe fn dc_maybe_network(mut context: *mut dc_context_t) {
|
||||
dc_interrupt_sentbox_idle(context);
|
||||
}
|
||||
pub unsafe fn dc_job_action_exists(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut action: libc::c_int,
|
||||
) -> libc::c_int {
|
||||
let mut job_exists: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"SELECT id FROM jobs WHERE action=?;\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -1280,7 +1277,7 @@ pub unsafe fn dc_job_action_exists(
|
||||
pub unsafe fn dc_job_send_msg(mut context: *mut dc_context_t, mut msg_id: uint32_t) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut mimefactory: dc_mimefactory_t = dc_mimefactory_t {
|
||||
from_addr: 0 as *mut libc::c_char,
|
||||
from_addr: 0 as &libc::c_char,
|
||||
from_displayname: 0 as *mut libc::c_char,
|
||||
selfstatus: 0 as *mut libc::c_char,
|
||||
recipients_names: 0 as *mut clist,
|
||||
@@ -1319,7 +1316,7 @@ pub unsafe fn dc_job_send_msg(mut context: *mut dc_context_t, mut msg_id: uint32
|
||||
|| (*mimefactory.msg).type_0 == 50i32
|
||||
|| (*mimefactory.msg).type_0 == 60i32
|
||||
{
|
||||
let mut pathNfilename: *mut libc::c_char = dc_param_get(
|
||||
let mut pathNfilename: &libc::c_char = dc_param_get(
|
||||
(*mimefactory.msg).param,
|
||||
'f' as i32,
|
||||
0 as *const libc::c_char,
|
||||
|
||||
@@ -149,7 +149,7 @@ pub unsafe fn dc_key_set_from_base64(
|
||||
pub unsafe fn dc_key_set_from_file(
|
||||
mut key: *mut dc_key_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
let mut buf: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -465,7 +465,7 @@ pub unsafe fn dc_key_render_asc(
|
||||
pub unsafe fn dc_key_render_asc_to_file(
|
||||
mut key: *const dc_key_t,
|
||||
mut file: *const libc::c_char,
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut file_content: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
|
||||
@@ -5,8 +5,8 @@ use crate::types::*;
|
||||
|
||||
/* yes: uppercase */
|
||||
/* library private: key-history */
|
||||
pub unsafe fn dc_add_to_keyhistory(
|
||||
_context: *mut dc_context_t,
|
||||
pub fn dc_add_to_keyhistory(
|
||||
_context: &dc_context_t,
|
||||
_rfc724_mid: *const libc::c_char,
|
||||
_sending_time: time_t,
|
||||
_addr: *const libc::c_char,
|
||||
|
||||
@@ -42,7 +42,7 @@ pub struct dc_kml_t {
|
||||
|
||||
// location streaming
|
||||
pub unsafe fn dc_send_locations_to_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut seconds: libc::c_int,
|
||||
) {
|
||||
@@ -126,13 +126,13 @@ pub unsafe fn dc_send_locations_to_chat(
|
||||
/* ******************************************************************************
|
||||
* job to send locations out to all chats that want them
|
||||
******************************************************************************/
|
||||
unsafe fn schedule_MAYBE_SEND_LOCATIONS(mut context: *mut dc_context_t, mut flags: libc::c_int) {
|
||||
unsafe fn schedule_MAYBE_SEND_LOCATIONS(mut context: &dc_context_t, mut flags: libc::c_int) {
|
||||
if 0 != flags & 0x1i32 || 0 == dc_job_action_exists(context, 5005i32) {
|
||||
dc_job_add(context, 5005i32, 0i32, 0 as *const libc::c_char, 60i32);
|
||||
};
|
||||
}
|
||||
pub unsafe extern "C" fn dc_is_sending_locations_to_chat(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut is_sending_locations: libc::c_int = 0i32;
|
||||
@@ -162,7 +162,7 @@ pub unsafe extern "C" fn dc_is_sending_locations_to_chat(
|
||||
return is_sending_locations;
|
||||
}
|
||||
pub unsafe fn dc_set_location(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut latitude: libc::c_double,
|
||||
mut longitude: libc::c_double,
|
||||
mut accuracy: libc::c_double,
|
||||
@@ -212,7 +212,7 @@ pub unsafe fn dc_set_location(
|
||||
return continue_streaming;
|
||||
}
|
||||
pub unsafe fn dc_get_locations(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut timestamp_from: time_t,
|
||||
@@ -294,7 +294,7 @@ unsafe fn is_marker(mut txt: *const libc::c_char) -> libc::c_int {
|
||||
}
|
||||
return 0i32;
|
||||
}
|
||||
pub unsafe fn dc_delete_all_locations(mut context: *mut dc_context_t) {
|
||||
pub unsafe fn dc_delete_all_locations(mut context: &dc_context_t) {
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
stmt = dc_sqlite3_prepare(
|
||||
@@ -312,7 +312,7 @@ pub unsafe fn dc_delete_all_locations(mut context: *mut dc_context_t) {
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_get_location_kml(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut last_added_location_id: *mut uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -449,7 +449,7 @@ unsafe fn get_kml_timestamp(mut utc: time_t) -> *mut libc::c_char {
|
||||
}
|
||||
|
||||
pub unsafe fn dc_get_message_kml(
|
||||
context: *const dc_context_t,
|
||||
context: &dc_context_t,
|
||||
timestamp: time_t,
|
||||
latitude: libc::c_double,
|
||||
longitude: libc::c_double,
|
||||
@@ -485,7 +485,7 @@ pub unsafe fn dc_get_message_kml(
|
||||
}
|
||||
|
||||
pub unsafe fn dc_set_kml_sent_timestamp(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut timestamp: time_t,
|
||||
) {
|
||||
@@ -501,7 +501,7 @@ pub unsafe fn dc_set_kml_sent_timestamp(
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_set_msg_location_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
mut location_id: uint32_t,
|
||||
) {
|
||||
@@ -516,7 +516,7 @@ pub unsafe fn dc_set_msg_location_id(
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_save_locations(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut contact_id: uint32_t,
|
||||
mut locations: *const dc_array_t,
|
||||
@@ -579,7 +579,7 @@ pub unsafe fn dc_save_locations(
|
||||
return newest_location_id;
|
||||
}
|
||||
pub unsafe fn dc_kml_parse(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut content: *const libc::c_char,
|
||||
mut content_bytes: size_t,
|
||||
) -> *mut dc_kml_t {
|
||||
@@ -762,10 +762,7 @@ pub unsafe fn dc_kml_unref(mut kml: *mut dc_kml_t) {
|
||||
free((*kml).addr as *mut libc::c_void);
|
||||
free(kml as *mut libc::c_void);
|
||||
}
|
||||
pub unsafe fn dc_job_do_DC_JOB_MAYBE_SEND_LOCATIONS(
|
||||
context: *mut dc_context_t,
|
||||
_job: *mut dc_job_t,
|
||||
) {
|
||||
pub unsafe fn dc_job_do_DC_JOB_MAYBE_SEND_LOCATIONS(context: &dc_context_t, _job: *mut dc_job_t) {
|
||||
let mut stmt_chats: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt_locations: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut now: time_t = time(0 as *mut time_t);
|
||||
@@ -845,7 +842,7 @@ pub unsafe fn dc_job_do_DC_JOB_MAYBE_SEND_LOC_ENDED(
|
||||
let mut chat_id: uint32_t = (*job).foreign_id;
|
||||
let mut locations_send_begin: time_t = 0i32 as time_t;
|
||||
let mut locations_send_until: time_t = 0i32 as time_t;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stock_str: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
|
||||
@@ -7,7 +7,7 @@ use crate::types::*;
|
||||
use crate::x::*;
|
||||
|
||||
pub unsafe extern "C" fn dc_log_event(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut event_code: Event,
|
||||
mut data1: libc::c_int,
|
||||
mut msg: *const libc::c_char,
|
||||
@@ -23,7 +23,7 @@ usually not reported using dc_log_error() - its up to the caller to
|
||||
decide, what should be reported or done. However, these "Normal" errors
|
||||
are usually logged by dc_log_warning(). */
|
||||
unsafe fn log_vprintf(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut event: Event,
|
||||
mut data1: libc::c_int,
|
||||
mut msg_format: *const libc::c_char,
|
||||
@@ -52,7 +52,7 @@ unsafe fn log_vprintf(
|
||||
free(msg as *mut libc::c_void);
|
||||
}
|
||||
pub unsafe extern "C" fn dc_log_event_seq(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut event_code: Event,
|
||||
mut sequence_start: *mut libc::c_int,
|
||||
mut msg: *const libc::c_char,
|
||||
@@ -68,7 +68,7 @@ pub unsafe extern "C" fn dc_log_event_seq(
|
||||
*sequence_start = 0i32;
|
||||
}
|
||||
pub unsafe extern "C" fn dc_log_error(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut data1: libc::c_int,
|
||||
mut msg: *const libc::c_char,
|
||||
mut va_1: ...
|
||||
@@ -76,7 +76,7 @@ pub unsafe extern "C" fn dc_log_error(
|
||||
log_vprintf(context, Event::ERROR, data1, msg, va_1);
|
||||
}
|
||||
pub unsafe extern "C" fn dc_log_warning(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut data1: libc::c_int,
|
||||
mut msg: *const libc::c_char,
|
||||
mut va_2: ...
|
||||
@@ -84,7 +84,7 @@ pub unsafe extern "C" fn dc_log_warning(
|
||||
log_vprintf(context, Event::WARNING, data1, msg, va_2);
|
||||
}
|
||||
pub unsafe extern "C" fn dc_log_info(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut data1: libc::c_int,
|
||||
mut msg: *const libc::c_char,
|
||||
mut va_3: ...
|
||||
|
||||
@@ -115,7 +115,7 @@ pub unsafe fn dc_lot_fill(
|
||||
mut msg: *const dc_msg_t,
|
||||
mut chat: *const dc_chat_t,
|
||||
mut contact: *const dc_contact_t,
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
) {
|
||||
if lot.is_null() || (*lot).magic != 0x107107i32 as libc::c_uint || msg.is_null() {
|
||||
return;
|
||||
|
||||
@@ -47,10 +47,7 @@ pub const DC_MF_MDN_LOADED: dc_mimefactory_loaded_t = 2;
|
||||
pub const DC_MF_MSG_LOADED: dc_mimefactory_loaded_t = 1;
|
||||
pub const DC_MF_NOTHING_LOADED: dc_mimefactory_loaded_t = 0;
|
||||
|
||||
pub unsafe fn dc_mimefactory_init(
|
||||
mut factory: *mut dc_mimefactory_t,
|
||||
mut context: *mut dc_context_t,
|
||||
) {
|
||||
pub unsafe fn dc_mimefactory_init(mut factory: *mut dc_mimefactory_t, mut context: &dc_context_t) {
|
||||
if factory.is_null() || context.is_null() {
|
||||
return;
|
||||
}
|
||||
@@ -128,7 +125,7 @@ pub unsafe fn dc_mimefactory_load_msg(
|
||||
clist_insert_after(
|
||||
(*factory).recipients_names,
|
||||
(*(*factory).recipients_names).last,
|
||||
dc_strdup_keep_null((*factory).from_displayname) as *mut libc::c_void,
|
||||
dc_strdup_keep_null((*factory).from_displayname) as &libc::c_void,
|
||||
);
|
||||
clist_insert_after(
|
||||
(*factory).recipients_addr,
|
||||
@@ -1060,7 +1057,7 @@ unsafe fn get_subject(
|
||||
let mut context: *mut dc_context_t = if !chat.is_null() {
|
||||
(*chat).context
|
||||
} else {
|
||||
0 as *mut dc_context_t
|
||||
std::ptr::null_mut()
|
||||
};
|
||||
let mut ret: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut raw_subject: *mut libc::c_char =
|
||||
|
||||
@@ -62,7 +62,7 @@ pub unsafe fn dc_no_compound_msgs() {
|
||||
static mut s_generate_compound_msgs: libc::c_int = 1i32;
|
||||
pub unsafe fn dc_mimeparser_new(
|
||||
mut blobdir: *const libc::c_char,
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
) -> *mut dc_mimeparser_t {
|
||||
let mut mimeparser: *mut dc_mimeparser_t = 0 as *mut dc_mimeparser_t;
|
||||
mimeparser = calloc(1, ::std::mem::size_of::<dc_mimeparser_t>()) as *mut dc_mimeparser_t;
|
||||
@@ -814,11 +814,7 @@ unsafe fn dc_mimeparser_parse_mime_recursive(
|
||||
}
|
||||
return any_part_added;
|
||||
}
|
||||
unsafe fn hash_header(
|
||||
out: *mut dc_hash_t,
|
||||
in_0: *const mailimf_fields,
|
||||
_context: *mut dc_context_t,
|
||||
) {
|
||||
unsafe fn hash_header(out: *mut dc_hash_t, in_0: *const mailimf_fields, _context: &dc_context_t) {
|
||||
if in_0.is_null() {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ use crate::dc_sqlite3::*;
|
||||
use crate::types::*;
|
||||
|
||||
pub unsafe fn dc_do_heuristics_moves(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut folder: *const libc::c_char,
|
||||
mut msg_id: uint32_t,
|
||||
) {
|
||||
|
||||
@@ -48,7 +48,7 @@ pub struct dc_msg_t {
|
||||
|
||||
// handle messages
|
||||
pub unsafe fn dc_get_msg_info(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
let mut e2ee_errors: libc::c_int = 0;
|
||||
@@ -292,7 +292,7 @@ pub unsafe fn dc_get_msg_info(
|
||||
free(rawtxt as *mut libc::c_void);
|
||||
return ret.buf;
|
||||
}
|
||||
pub unsafe fn dc_msg_new_untyped(mut context: *mut dc_context_t) -> *mut dc_msg_t {
|
||||
pub unsafe fn dc_msg_new_untyped(mut context: &dc_context_t) -> *mut dc_msg_t {
|
||||
return dc_msg_new(context, 0i32);
|
||||
}
|
||||
/* *
|
||||
@@ -305,10 +305,7 @@ pub unsafe fn dc_msg_new_untyped(mut context: *mut dc_context_t) -> *mut dc_msg_
|
||||
// to check if a mail was sent, use dc_msg_is_sent()
|
||||
// approx. max. lenght returned by dc_msg_get_text()
|
||||
// approx. max. lenght returned by dc_get_msg_info()
|
||||
pub unsafe fn dc_msg_new(
|
||||
mut context: *mut dc_context_t,
|
||||
mut viewtype: libc::c_int,
|
||||
) -> *mut dc_msg_t {
|
||||
pub unsafe fn dc_msg_new(mut context: &dc_context_t, mut viewtype: libc::c_int) -> *mut dc_msg_t {
|
||||
let mut msg: *mut dc_msg_t = 0 as *mut dc_msg_t;
|
||||
msg = calloc(1, ::std::mem::size_of::<dc_msg_t>()) as *mut dc_msg_t;
|
||||
if msg.is_null() {
|
||||
@@ -508,7 +505,7 @@ pub unsafe fn dc_msg_load_from_db(
|
||||
mut id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(msg.is_null()
|
||||
|| (*msg).magic != 0x11561156i32 as libc::c_uint
|
||||
|| context.is_null()
|
||||
@@ -611,7 +608,7 @@ pub unsafe fn dc_get_mime_headers(
|
||||
mut context: *mut dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
let mut eml: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut eml: &libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null() || (*context).magic != 0x11a11807i32 as libc::c_uint) {
|
||||
stmt = dc_sqlite3_prepare(
|
||||
@@ -664,11 +661,11 @@ pub unsafe fn dc_delete_msgs(
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_update_msg_chat_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
mut chat_id: uint32_t,
|
||||
) {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE msgs SET chat_id=? WHERE id=?;\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
@@ -687,7 +684,7 @@ pub unsafe fn dc_markseen_msgs(
|
||||
let mut send_event: libc::c_int = 0i32;
|
||||
let mut curr_state: libc::c_int = 0i32;
|
||||
let mut curr_blocked: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null()
|
||||
|| (*context).magic != 0x11a11807i32 as libc::c_uint
|
||||
|| msg_ids.is_null()
|
||||
@@ -752,7 +749,7 @@ pub unsafe fn dc_update_msg_state(
|
||||
mut msg_id: uint32_t,
|
||||
mut state: libc::c_int,
|
||||
) {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE msgs SET state=? WHERE id=?;\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
@@ -776,7 +773,7 @@ pub unsafe fn dc_star_msgs(
|
||||
return;
|
||||
}
|
||||
dc_sqlite3_begin_transaction((*context).sql);
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE msgs SET starred=? WHERE id=?;\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
@@ -803,7 +800,7 @@ pub unsafe fn dc_get_msg(mut context: *mut dc_context_t, mut msg_id: uint32_t) -
|
||||
return obj;
|
||||
} else {
|
||||
dc_msg_unref(obj);
|
||||
return 0 as *mut dc_msg_t;
|
||||
return 0 as &dc_msg_t;
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_msg_get_id(mut msg: *const dc_msg_t) -> uint32_t {
|
||||
@@ -976,7 +973,7 @@ pub unsafe fn dc_msg_get_summarytext_by_raw(
|
||||
mut context: *mut dc_context_t,
|
||||
) -> *mut libc::c_char {
|
||||
/* get a summary text, result must be free()'d, never returns NULL. */
|
||||
let mut ret: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut ret: &libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut prefix: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut pathNfilename: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut label: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -1226,7 +1223,7 @@ pub unsafe fn dc_msg_new_load(
|
||||
mut context: *mut dc_context_t,
|
||||
mut msg_id: uint32_t,
|
||||
) -> *mut dc_msg_t {
|
||||
let mut msg: *mut dc_msg_t = dc_msg_new_untyped(context);
|
||||
let mut msg: &dc_msg_t = dc_msg_new_untyped(context);
|
||||
dc_msg_load_from_db(msg, context, msg_id);
|
||||
return msg;
|
||||
}
|
||||
@@ -1241,7 +1238,7 @@ pub unsafe fn dc_delete_msg_from_db(mut context: *mut dc_context_t, mut msg_id:
|
||||
sqlite3_bind_int(stmt, 1i32, (*msg).id as libc::c_int);
|
||||
sqlite3_step(stmt);
|
||||
sqlite3_finalize(stmt);
|
||||
stmt = 0 as *mut sqlite3_stmt;
|
||||
stmt = 0 as &sqlite3_stmt;
|
||||
stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"DELETE FROM msgs_mdns WHERE msg_id=?;\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -1282,13 +1279,13 @@ pub unsafe fn dc_msg_exists(mut context: *mut dc_context_t, mut msg_id: uint32_t
|
||||
return msg_exists;
|
||||
}
|
||||
pub unsafe fn dc_update_msg_move_state(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
mut state: dc_move_state_t,
|
||||
) {
|
||||
// we update the move_state for all messages belonging to a given Message-ID
|
||||
// so that the state stay intact when parts are deleted
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE msgs SET move_state=? WHERE rfc724_mid=?;\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
@@ -1302,7 +1299,7 @@ pub unsafe fn dc_set_msg_failed(
|
||||
mut msg_id: uint32_t,
|
||||
mut error: *const libc::c_char,
|
||||
) {
|
||||
let mut msg: *mut dc_msg_t = dc_msg_new_untyped(context);
|
||||
let mut msg: &dc_msg_t = dc_msg_new_untyped(context);
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(0 == dc_msg_load_from_db(msg, context, msg_id)) {
|
||||
if 18i32 == (*msg).state || 20i32 == (*msg).state || 26i32 == (*msg).state {
|
||||
@@ -1341,7 +1338,7 @@ pub unsafe fn dc_mdn_from_ext(
|
||||
mut from_id: uint32_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
mut timestamp_sent: time_t,
|
||||
mut ret_chat_id: *mut uint32_t,
|
||||
mut ret_chat_id: &uint32_t,
|
||||
mut ret_msg_id: *mut uint32_t,
|
||||
) -> libc::c_int {
|
||||
let mut chat_type: libc::c_int = 0;
|
||||
@@ -1466,7 +1463,7 @@ pub unsafe fn dc_get_real_msg_cnt(mut context: *mut dc_context_t) -> size_t {
|
||||
sqlite3_finalize(stmt);
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_get_deaddrop_msg_cnt(mut context: *mut dc_context_t) -> size_t {
|
||||
pub unsafe fn dc_get_deaddrop_msg_cnt(mut context: &dc_context_t) -> size_t {
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut ret: size_t = 0i32 as size_t;
|
||||
if !(context.is_null()
|
||||
@@ -1485,12 +1482,12 @@ pub unsafe fn dc_get_deaddrop_msg_cnt(mut context: *mut dc_context_t) -> size_t
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_rfc724_mid_cnt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
/* check the number of messages with the same rfc724_mid */
|
||||
let mut ret: libc::c_int = 0i32;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
if !(context.is_null()
|
||||
|| (*context).magic != 0x11a11807i32 as libc::c_uint
|
||||
|| (*(*context).sql).cobj.is_null())
|
||||
@@ -1512,7 +1509,7 @@ pub unsafe fn dc_rfc724_mid_exists(
|
||||
mut context: *mut dc_context_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
mut ret_server_folder: *mut *mut libc::c_char,
|
||||
mut ret_server_uid: *mut uint32_t,
|
||||
mut ret_server_uid: &uint32_t,
|
||||
) -> uint32_t {
|
||||
let mut ret: uint32_t = 0i32 as uint32_t;
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
@@ -1552,7 +1549,7 @@ pub unsafe fn dc_update_server_uid(
|
||||
mut server_folder: *const libc::c_char,
|
||||
mut server_uid: uint32_t,
|
||||
) {
|
||||
let mut stmt: *mut sqlite3_stmt = dc_sqlite3_prepare(
|
||||
let mut stmt: &sqlite3_stmt = dc_sqlite3_prepare(
|
||||
(*context).sql,
|
||||
b"UPDATE msgs SET server_folder=?, server_uid=? WHERE rfc724_mid=?;\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
|
||||
@@ -22,7 +22,7 @@ pub struct oauth2_t {
|
||||
}
|
||||
|
||||
pub unsafe fn dc_get_oauth2_url(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut redirect_uri: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -124,7 +124,7 @@ unsafe fn get_info(mut addr: *const libc::c_char) -> *mut oauth2_t {
|
||||
// the following function may block due http-requests;
|
||||
// must not be called from the main thread or by the ui!
|
||||
pub unsafe fn dc_get_oauth2_access_token(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut code: *const libc::c_char,
|
||||
mut flags: libc::c_int,
|
||||
@@ -479,7 +479,7 @@ unsafe extern "C" fn jsoneq(
|
||||
}
|
||||
return -1i32;
|
||||
}
|
||||
unsafe fn is_expired(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
unsafe fn is_expired(mut context: &dc_context_t) -> libc::c_int {
|
||||
let mut expire_timestamp: time_t = dc_sqlite3_get_config_int64(
|
||||
(*context).sql,
|
||||
b"oauth2_timestamp_expires\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -494,7 +494,7 @@ unsafe fn is_expired(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
return 1i32;
|
||||
}
|
||||
pub unsafe fn dc_get_oauth2_addr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut code: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -522,7 +522,7 @@ pub unsafe fn dc_get_oauth2_addr(
|
||||
return addr_out;
|
||||
}
|
||||
unsafe fn get_oauth2_addr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut oauth2: *const oauth2_t,
|
||||
mut access_token: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
|
||||
@@ -130,7 +130,7 @@ pub unsafe fn dc_split_armored_data(
|
||||
}
|
||||
/* public key encryption */
|
||||
pub unsafe fn dc_pgp_create_keypair(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut addr: *const libc::c_char,
|
||||
mut ret_public_key: *mut dc_key_t,
|
||||
mut ret_private_key: *mut dc_key_t,
|
||||
@@ -190,7 +190,7 @@ pub unsafe fn dc_pgp_create_keypair(
|
||||
return success;
|
||||
}
|
||||
/* returns 0 if there is no error, otherwise logs the error if a context is provided and returns 1*/
|
||||
pub unsafe fn dc_pgp_handle_rpgp_error(mut context: *mut dc_context_t) -> libc::c_int {
|
||||
pub unsafe fn dc_pgp_handle_rpgp_error(mut context: &dc_context_t) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut len: libc::c_int = 0i32;
|
||||
let mut msg: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -213,7 +213,7 @@ pub unsafe fn dc_pgp_handle_rpgp_error(mut context: *mut dc_context_t) -> libc::
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_pgp_is_valid_key(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut raw_key: *const dc_key_t,
|
||||
) -> libc::c_int {
|
||||
let mut key_is_valid: libc::c_int = 0i32;
|
||||
@@ -261,9 +261,9 @@ pub unsafe fn dc_pgp_calc_fingerprint(
|
||||
(*raw_key).binary as *const uint8_t,
|
||||
(*raw_key).bytes as usize,
|
||||
);
|
||||
if !(0 != dc_pgp_handle_rpgp_error(0 as *mut dc_context_t)) {
|
||||
if !(0 != dc_pgp_handle_rpgp_error(0 as &dc_context_t)) {
|
||||
fingerprint = rpgp::rpgp_key_fingerprint(key);
|
||||
if !(0 != dc_pgp_handle_rpgp_error(0 as *mut dc_context_t)) {
|
||||
if !(0 != dc_pgp_handle_rpgp_error(0 as &dc_context_t)) {
|
||||
*ret_fingerprint_bytes = rpgp::rpgp_cvec_len(fingerprint) as size_t;
|
||||
*ret_fingerprint = malloc(*ret_fingerprint_bytes) as *mut uint8_t;
|
||||
memcpy(
|
||||
@@ -284,7 +284,7 @@ pub unsafe fn dc_pgp_calc_fingerprint(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_pgp_split_key(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut private_in: *const dc_key_t,
|
||||
mut ret_public_key: *mut dc_key_t,
|
||||
) -> libc::c_int {
|
||||
@@ -333,7 +333,7 @@ pub unsafe fn dc_pgp_split_key(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_pgp_pk_encrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut plain_text: *const libc::c_void,
|
||||
mut plain_bytes: size_t,
|
||||
mut raw_public_keys_for_encryption: *const dc_keyring_t,
|
||||
@@ -502,7 +502,7 @@ pub unsafe fn dc_pgp_pk_encrypt(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_pgp_pk_decrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut ctext: *const libc::c_void,
|
||||
mut ctext_bytes: size_t,
|
||||
mut raw_private_keys_for_decryption: *const dc_keyring_t,
|
||||
@@ -665,7 +665,7 @@ pub unsafe fn dc_pgp_pk_decrypt(
|
||||
}
|
||||
/* symm. encryption */
|
||||
pub unsafe fn dc_pgp_symm_encrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut passphrase: *const libc::c_char,
|
||||
mut plain: *const libc::c_void,
|
||||
mut plain_bytes: size_t,
|
||||
@@ -697,7 +697,7 @@ pub unsafe fn dc_pgp_symm_encrypt(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_pgp_symm_decrypt(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut passphrase: *const libc::c_char,
|
||||
mut ctext: *const libc::c_void,
|
||||
mut ctext_bytes: size_t,
|
||||
|
||||
@@ -24,7 +24,7 @@ use crate::x::*;
|
||||
// text1=URL
|
||||
// text1=error string
|
||||
pub unsafe fn dc_check_qr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut qr: *const libc::c_char,
|
||||
) -> *mut dc_lot_t {
|
||||
let mut current_block: u64;
|
||||
|
||||
@@ -1042,7 +1042,7 @@ pub unsafe fn dc_receive_imf(
|
||||
* Misc. Tools
|
||||
******************************************************************************/
|
||||
unsafe fn calc_timestamps(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut chat_id: uint32_t,
|
||||
mut from_id: uint32_t,
|
||||
mut message_timestamp: time_t,
|
||||
@@ -1093,7 +1093,7 @@ which tries to create or find out the chat_id by:
|
||||
So when the function returns, the caller has the group id matching the current
|
||||
state of the group. */
|
||||
unsafe fn create_or_lookup_group(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime_parser: *mut dc_mimeparser_t,
|
||||
mut allow_creation: libc::c_int,
|
||||
mut create_blocked: libc::c_int,
|
||||
@@ -1559,7 +1559,7 @@ unsafe fn create_or_lookup_group(
|
||||
* Handle groups for received messages
|
||||
******************************************************************************/
|
||||
unsafe fn create_or_lookup_adhoc_group(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime_parser: *mut dc_mimeparser_t,
|
||||
mut allow_creation: libc::c_int,
|
||||
mut create_blocked: libc::c_int,
|
||||
@@ -1673,7 +1673,7 @@ unsafe fn create_or_lookup_adhoc_group(
|
||||
};
|
||||
}
|
||||
unsafe fn create_group_record(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut grpid: *const libc::c_char,
|
||||
mut grpname: *const libc::c_char,
|
||||
mut create_blocked: libc::c_int,
|
||||
@@ -1706,7 +1706,7 @@ unsafe fn create_group_record(
|
||||
return chat_id;
|
||||
}
|
||||
unsafe fn create_adhoc_grp_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut member_ids: *mut dc_array_t,
|
||||
) -> *mut libc::c_char {
|
||||
/* algorithm:
|
||||
@@ -1791,7 +1791,7 @@ unsafe fn create_adhoc_grp_id(
|
||||
return ret;
|
||||
}
|
||||
unsafe fn search_chat_ids_by_contact_ids(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut unsorted_contact_ids: *const dc_array_t,
|
||||
) -> *mut dc_array_t {
|
||||
/* searches chat_id's by the given contact IDs, may return zero, one or more chat_id's */
|
||||
@@ -1859,7 +1859,7 @@ unsafe fn search_chat_ids_by_contact_ids(
|
||||
return chat_ids;
|
||||
}
|
||||
unsafe fn check_verified_properties(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mimeparser: *mut dc_mimeparser_t,
|
||||
mut from_id: uint32_t,
|
||||
mut to_ids: *const dc_array_t,
|
||||
@@ -2018,7 +2018,7 @@ unsafe fn set_better_msg(
|
||||
};
|
||||
}
|
||||
unsafe fn dc_is_reply_to_known_message(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime_parser: *mut dc_mimeparser_t,
|
||||
) -> libc::c_int {
|
||||
/* check if the message is a reply to a known message; the replies are identified by the Message-ID from
|
||||
@@ -2067,7 +2067,7 @@ unsafe fn dc_is_reply_to_known_message(
|
||||
return 0i32;
|
||||
}
|
||||
unsafe fn is_known_rfc724_mid_in_list(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mid_list: *const clist,
|
||||
) -> libc::c_int {
|
||||
if !mid_list.is_null() {
|
||||
@@ -2097,7 +2097,7 @@ unsafe fn is_known_rfc724_mid_in_list(
|
||||
* Check if a message is a reply to a known message (messenger or non-messenger)
|
||||
******************************************************************************/
|
||||
unsafe fn is_known_rfc724_mid(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut is_known: libc::c_int = 0i32;
|
||||
@@ -2115,7 +2115,7 @@ unsafe fn is_known_rfc724_mid(
|
||||
return is_known;
|
||||
}
|
||||
unsafe fn dc_is_reply_to_messenger_message(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mime_parser: *mut dc_mimeparser_t,
|
||||
) -> libc::c_int {
|
||||
/* function checks, if the message defined by mime_parser references a message send by us from Delta Chat.
|
||||
@@ -2157,7 +2157,7 @@ unsafe fn dc_is_reply_to_messenger_message(
|
||||
return 0i32;
|
||||
}
|
||||
unsafe fn is_msgrmsg_rfc724_mid_in_list(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mid_list: *const clist,
|
||||
) -> libc::c_int {
|
||||
if !mid_list.is_null() {
|
||||
@@ -2186,7 +2186,7 @@ unsafe fn is_msgrmsg_rfc724_mid_in_list(
|
||||
* Check if a message is a reply to any messenger message
|
||||
******************************************************************************/
|
||||
unsafe fn is_msgrmsg_rfc724_mid(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut rfc724_mid: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut is_msgrmsg: libc::c_int = 0i32;
|
||||
@@ -2205,7 +2205,7 @@ unsafe fn is_msgrmsg_rfc724_mid(
|
||||
return is_msgrmsg;
|
||||
}
|
||||
unsafe fn dc_add_or_lookup_contacts_by_address_list(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut adr_list: *const mailimf_address_list,
|
||||
mut origin: libc::c_int,
|
||||
mut ids: *mut dc_array_t,
|
||||
@@ -2256,7 +2256,7 @@ unsafe fn dc_add_or_lookup_contacts_by_address_list(
|
||||
}
|
||||
}
|
||||
unsafe fn dc_add_or_lookup_contacts_by_mailbox_list(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mb_list: *const mailimf_mailbox_list,
|
||||
mut origin: libc::c_int,
|
||||
mut ids: *mut dc_array_t,
|
||||
@@ -2293,7 +2293,7 @@ unsafe fn dc_add_or_lookup_contacts_by_mailbox_list(
|
||||
* Add contacts to database on receiving messages
|
||||
******************************************************************************/
|
||||
unsafe fn add_or_lookup_contact_by_addr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut display_name_enc: *const libc::c_char,
|
||||
mut addr_spec: *const libc::c_char,
|
||||
mut origin: libc::c_int,
|
||||
|
||||
@@ -25,7 +25,7 @@ use crate::types::*;
|
||||
use crate::x::*;
|
||||
|
||||
pub unsafe fn dc_get_securejoin_qr(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut group_chat_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
let mut current_block: u64;
|
||||
@@ -145,7 +145,7 @@ pub unsafe fn dc_get_securejoin_qr(
|
||||
dc_strdup(0 as *const libc::c_char)
|
||||
};
|
||||
}
|
||||
unsafe fn get_self_fingerprint(mut context: *mut dc_context_t) -> *mut libc::c_char {
|
||||
unsafe fn get_self_fingerprint(mut context: &dc_context_t) -> *mut libc::c_char {
|
||||
let mut self_addr: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut self_key: *mut dc_key_t = dc_key_new();
|
||||
let mut fingerprint: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
@@ -163,7 +163,7 @@ unsafe fn get_self_fingerprint(mut context: *mut dc_context_t) -> *mut libc::c_c
|
||||
return fingerprint;
|
||||
}
|
||||
pub unsafe fn dc_join_securejoin(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut qr: *const libc::c_char,
|
||||
) -> uint32_t {
|
||||
/* ==========================================================
|
||||
@@ -290,7 +290,7 @@ pub unsafe fn dc_join_securejoin(
|
||||
return ret_chat_id as uint32_t;
|
||||
}
|
||||
unsafe fn send_handshake_msg(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_chat_id: uint32_t,
|
||||
mut step: *const libc::c_char,
|
||||
mut param2: *const libc::c_char,
|
||||
@@ -326,7 +326,7 @@ unsafe fn send_handshake_msg(
|
||||
dc_msg_unref(msg);
|
||||
}
|
||||
unsafe fn chat_id_2_contact_id(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut contact_chat_id: uint32_t,
|
||||
) -> uint32_t {
|
||||
let mut contact_id: uint32_t = 0i32 as uint32_t;
|
||||
@@ -338,7 +338,7 @@ unsafe fn chat_id_2_contact_id(
|
||||
return contact_id;
|
||||
}
|
||||
unsafe fn fingerprint_equals_sender(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut fingerprint: *const libc::c_char,
|
||||
mut contact_chat_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -369,7 +369,7 @@ unsafe fn fingerprint_equals_sender(
|
||||
}
|
||||
/* library private: secure-join */
|
||||
pub unsafe fn dc_handle_securejoin_handshake(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut mimeparser: *mut dc_mimeparser_t,
|
||||
mut contact_id: uint32_t,
|
||||
) -> libc::c_int {
|
||||
@@ -896,14 +896,11 @@ pub unsafe fn dc_handle_securejoin_handshake(
|
||||
free(grpid as *mut libc::c_void);
|
||||
return ret;
|
||||
}
|
||||
unsafe fn end_bobs_joining(mut context: *mut dc_context_t, mut status: libc::c_int) {
|
||||
unsafe fn end_bobs_joining(mut context: &dc_context_t, mut status: libc::c_int) {
|
||||
(*context).bobs_status = status;
|
||||
dc_stop_ongoing_process(context);
|
||||
}
|
||||
unsafe fn secure_connection_established(
|
||||
mut context: *mut dc_context_t,
|
||||
mut contact_chat_id: uint32_t,
|
||||
) {
|
||||
unsafe fn secure_connection_established(mut context: &dc_context_t, mut contact_chat_id: uint32_t) {
|
||||
let mut contact_id: uint32_t = chat_id_2_contact_id(context, contact_chat_id);
|
||||
let mut contact: *mut dc_contact_t = dc_get_contact(context, contact_id);
|
||||
let mut msg: *mut libc::c_char = dc_stock_str_repl_string(
|
||||
@@ -949,7 +946,7 @@ unsafe fn could_not_establish_secure_connection(
|
||||
mut details: *const libc::c_char,
|
||||
) {
|
||||
let mut contact_id: uint32_t = chat_id_2_contact_id(context, contact_chat_id);
|
||||
let mut contact: *mut dc_contact_t = dc_get_contact(context, contact_id);
|
||||
let mut contact: &dc_contact_t = dc_get_contact(context, contact_id);
|
||||
let mut msg: *mut libc::c_char = dc_stock_str_repl_string(
|
||||
context,
|
||||
36i32,
|
||||
@@ -975,7 +972,7 @@ unsafe fn mark_peer_as_verified(
|
||||
mut fingerprint: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut peerstate: *mut dc_apeerstate_t = dc_apeerstate_new(context);
|
||||
let mut peerstate: &dc_apeerstate_t = dc_apeerstate_new(context);
|
||||
if !(0 == dc_apeerstate_load_by_fingerprint(peerstate, (*context).sql, fingerprint)) {
|
||||
if !(0 == dc_apeerstate_set_verified(peerstate, 1i32, fingerprint, 2i32)) {
|
||||
(*peerstate).prefer_encrypt = 1i32;
|
||||
@@ -1040,7 +1037,7 @@ pub unsafe fn dc_handle_degrade_event(
|
||||
mut context: *mut dc_context_t,
|
||||
mut peerstate: *mut dc_apeerstate_t,
|
||||
) {
|
||||
let mut stmt: *mut sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut stmt: &sqlite3_stmt = 0 as *mut sqlite3_stmt;
|
||||
let mut contact_id: uint32_t = 0i32 as uint32_t;
|
||||
let mut contact_chat_id: uint32_t = 0i32 as uint32_t;
|
||||
if !(context.is_null() || peerstate.is_null()) {
|
||||
|
||||
391
src/dc_smtp.rs
391
src/dc_smtp.rs
@@ -34,85 +34,80 @@ pub fn dc_smtp_new() -> dc_smtp_t {
|
||||
}
|
||||
}
|
||||
|
||||
pub unsafe fn dc_smtp_unref(mut smtp: *mut dc_smtp_t) {
|
||||
if smtp.is_null() {
|
||||
return;
|
||||
}
|
||||
pub unsafe fn dc_smtp_unref(smtp: &mut dc_smtp_t) {
|
||||
dc_smtp_disconnect(smtp);
|
||||
free((*smtp).from as *mut libc::c_void);
|
||||
free((*smtp).error as *mut libc::c_void);
|
||||
free(smtp.from as *mut libc::c_void);
|
||||
free(smtp.error as *mut libc::c_void);
|
||||
free(smtp as *mut libc::c_void);
|
||||
}
|
||||
pub unsafe fn dc_smtp_disconnect(mut smtp: *mut dc_smtp_t) {
|
||||
if smtp.is_null() {
|
||||
return;
|
||||
|
||||
pub unsafe fn dc_smtp_disconnect(smtp: &mut dc_smtp_t) {
|
||||
if !smtp.etpan.is_null() {
|
||||
mailsmtp_free(smtp.etpan);
|
||||
smtp.etpan = 0 as *mut mailsmtp;
|
||||
}
|
||||
if !(*smtp).etpan.is_null() {
|
||||
mailsmtp_free((*smtp).etpan);
|
||||
(*smtp).etpan = 0 as *mut mailsmtp
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_smtp_is_connected(mut smtp: *const dc_smtp_t) -> libc::c_int {
|
||||
return if !smtp.is_null() && !(*smtp).etpan.is_null() {
|
||||
1i32
|
||||
|
||||
pub unsafe fn dc_smtp_is_connected(smtp: *const dc_smtp_t) -> libc::c_int {
|
||||
if !smtp.etpan.is_null() {
|
||||
1
|
||||
} else {
|
||||
0i32
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_smtp_connect(
|
||||
mut smtp: *mut dc_smtp_t,
|
||||
mut lp: *const dc_loginparam_t,
|
||||
) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut r: libc::c_int = 0i32;
|
||||
let mut try_esmtp: libc::c_int = 0i32;
|
||||
if smtp.is_null() || lp.is_null() {
|
||||
return 0i32;
|
||||
0
|
||||
}
|
||||
if !(*smtp).etpan.is_null() {
|
||||
}
|
||||
|
||||
pub unsafe fn dc_smtp_connect(smtp: &mut dc_smtp_t, lp: *const dc_loginparam_t) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0;
|
||||
let mut r: libc::c_int = 0;
|
||||
let mut try_esmtp: libc::c_int = 0;
|
||||
if lp.is_null() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if !smtp.etpan.is_null() {
|
||||
dc_log_warning(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP already connected.\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
success = 1i32
|
||||
} else if (*lp).addr.is_null() || (*lp).send_server.is_null() || (*lp).send_port == 0i32 {
|
||||
success = 1;
|
||||
} else if (*lp).addr.is_null() || (*lp).send_server.is_null() || (*lp).send_port == 0 {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP bad parameters.\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
} else {
|
||||
free((*smtp).from as *mut libc::c_void);
|
||||
(*smtp).from = dc_strdup((*lp).addr);
|
||||
(*smtp).etpan = mailsmtp_new(0i32 as size_t, None);
|
||||
if (*smtp).etpan.is_null() {
|
||||
free(smtp.from as *mut libc::c_void);
|
||||
smtp.from = dc_strdup((*lp).addr);
|
||||
smtp.etpan = mailsmtp_new(0 as size_t, None);
|
||||
if smtp.etpan.is_null() {
|
||||
dc_log_error(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-object creation failed.\x00" as *const u8 as *const libc::c_char,
|
||||
);
|
||||
} else {
|
||||
mailsmtp_set_timeout((*smtp).etpan, 10i32 as time_t);
|
||||
mailsmtp_set_timeout(smtp.etpan, 10 as time_t);
|
||||
mailsmtp_set_progress_callback(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
Some(body_progress),
|
||||
smtp as *mut libc::c_void,
|
||||
);
|
||||
/* connect to SMTP server */
|
||||
if 0 != (*lp).server_flags & (0x10000i32 | 0x40000i32) {
|
||||
if 0 != (*lp).server_flags & (0x10000 | 0x40000) {
|
||||
r = mailsmtp_socket_connect(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
(*lp).send_server,
|
||||
(*lp).send_port as uint16_t,
|
||||
);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP-Socket connection to %s:%i failed (%s)\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_server,
|
||||
@@ -125,15 +120,15 @@ pub unsafe fn dc_smtp_connect(
|
||||
}
|
||||
} else {
|
||||
r = mailsmtp_ssl_connect(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
(*lp).send_server,
|
||||
(*lp).send_port as uint16_t,
|
||||
);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP-SSL connection to %s:%i failed (%s)\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_server,
|
||||
@@ -148,54 +143,54 @@ pub unsafe fn dc_smtp_connect(
|
||||
match current_block {
|
||||
12512295087047028901 => {}
|
||||
_ => {
|
||||
try_esmtp = 1i32;
|
||||
(*smtp).esmtp = 0i32;
|
||||
try_esmtp = 1;
|
||||
smtp.esmtp = 0;
|
||||
if 0 != try_esmtp && {
|
||||
r = mailesmtp_ehlo((*smtp).etpan);
|
||||
r = mailesmtp_ehlo(smtp.etpan);
|
||||
r == MAILSMTP_NO_ERROR as libc::c_int
|
||||
} {
|
||||
(*smtp).esmtp = 1i32
|
||||
smtp.esmtp = 1
|
||||
} else if 0 == try_esmtp || r == MAILSMTP_ERROR_NOT_IMPLEMENTED as libc::c_int {
|
||||
r = mailsmtp_helo((*smtp).etpan)
|
||||
r = mailsmtp_helo(smtp.etpan)
|
||||
}
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP-helo failed (%s)\x00" as *const u8 as *const libc::c_char,
|
||||
mailsmtp_strerror(r),
|
||||
);
|
||||
} else {
|
||||
if 0 != (*lp).server_flags & 0x10000i32 {
|
||||
r = mailsmtp_socket_starttls((*smtp).etpan);
|
||||
if 0 != (*lp).server_flags & 0x10000 {
|
||||
r = mailsmtp_socket_starttls(smtp.etpan);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP-STARTTLS failed (%s)\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
mailsmtp_strerror(r),
|
||||
);
|
||||
current_block = 12512295087047028901;
|
||||
} else {
|
||||
(*smtp).esmtp = 0i32;
|
||||
smtp.esmtp = 0;
|
||||
if 0 != try_esmtp && {
|
||||
r = mailesmtp_ehlo((*smtp).etpan);
|
||||
r = mailesmtp_ehlo(smtp.etpan);
|
||||
r == MAILSMTP_NO_ERROR as libc::c_int
|
||||
} {
|
||||
(*smtp).esmtp = 1i32
|
||||
smtp.esmtp = 1
|
||||
} else if 0 == try_esmtp
|
||||
|| r == MAILSMTP_ERROR_NOT_IMPLEMENTED as libc::c_int
|
||||
{
|
||||
r = mailsmtp_helo((*smtp).etpan)
|
||||
r = mailsmtp_helo(smtp.etpan)
|
||||
}
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors as *mut libc::c_int,
|
||||
&mut smtp.log_connect_errors as *mut libc::c_int,
|
||||
b"SMTP-helo failed (%s)\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
mailsmtp_strerror(r),
|
||||
@@ -203,8 +198,8 @@ pub unsafe fn dc_smtp_connect(
|
||||
current_block = 12512295087047028901;
|
||||
} else {
|
||||
dc_log_info(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-server %s:%i STARTTLS-connected.\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_server,
|
||||
@@ -214,10 +209,10 @@ pub unsafe fn dc_smtp_connect(
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if 0 != (*lp).server_flags & 0x40000i32 {
|
||||
if 0 != (*lp).server_flags & 0x40000 {
|
||||
dc_log_info(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-server %s:%i connected.\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_server,
|
||||
@@ -225,8 +220,8 @@ pub unsafe fn dc_smtp_connect(
|
||||
);
|
||||
} else {
|
||||
dc_log_info(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-server %s:%i SSL-connected.\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_server,
|
||||
@@ -239,35 +234,35 @@ pub unsafe fn dc_smtp_connect(
|
||||
12512295087047028901 => {}
|
||||
_ => {
|
||||
if !(*lp).send_user.is_null() {
|
||||
if 0 != (*lp).server_flags & 0x2i32 {
|
||||
if 0 != (*lp).server_flags & 0x2 {
|
||||
dc_log_info(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-OAuth2 connect...\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
);
|
||||
let mut access_token: *mut libc::c_char =
|
||||
dc_get_oauth2_access_token(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
(*lp).addr,
|
||||
(*lp).send_pw,
|
||||
0i32,
|
||||
0,
|
||||
);
|
||||
r = mailsmtp_oauth2_authenticate(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
(*lp).send_user,
|
||||
access_token,
|
||||
);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
free(access_token as *mut libc::c_void);
|
||||
access_token = dc_get_oauth2_access_token(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
(*lp).addr,
|
||||
(*lp).send_pw,
|
||||
0x1i32,
|
||||
0x1,
|
||||
);
|
||||
r = mailsmtp_oauth2_authenticate(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
(*lp).send_user,
|
||||
access_token,
|
||||
)
|
||||
@@ -276,7 +271,7 @@ pub unsafe fn dc_smtp_connect(
|
||||
current_block = 15462640364611497761;
|
||||
} else {
|
||||
r = mailsmtp_auth(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
(*lp).send_user,
|
||||
(*lp).send_pw,
|
||||
);
|
||||
@@ -285,12 +280,12 @@ pub unsafe fn dc_smtp_connect(
|
||||
* There are some Mailservers which do not correclty implement PLAIN auth (hMail)
|
||||
* So here we try a workaround. See https://github.com/deltachat/deltachat-android/issues/67
|
||||
*/
|
||||
if 0 != (*(*smtp).etpan).auth
|
||||
if 0 != (*smtp.etpan).auth
|
||||
& MAILSMTP_AUTH_PLAIN as libc::c_int
|
||||
{
|
||||
dc_log_info(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"Trying SMTP-Login workaround \"%s\"...\x00"
|
||||
as *const u8
|
||||
as *const libc::c_char,
|
||||
@@ -302,10 +297,10 @@ pub unsafe fn dc_smtp_connect(
|
||||
hostname.as_mut_ptr(),
|
||||
::std::mem::size_of::<[libc::c_char; 513]>(),
|
||||
);
|
||||
if err < 0i32 {
|
||||
if err < 0 {
|
||||
dc_log_error(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"SMTP-Login: Cannot get hostname.\x00"
|
||||
as *const u8
|
||||
as *const libc::c_char,
|
||||
@@ -313,7 +308,7 @@ pub unsafe fn dc_smtp_connect(
|
||||
current_block = 12512295087047028901;
|
||||
} else {
|
||||
r = mailesmtp_auth_sasl(
|
||||
(*smtp).etpan,
|
||||
smtp.etpan,
|
||||
b"PLAIN\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
hostname.as_mut_ptr(),
|
||||
@@ -338,9 +333,9 @@ pub unsafe fn dc_smtp_connect(
|
||||
_ => {
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
dc_log_event_seq(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::ERROR_NETWORK,
|
||||
&mut (*smtp).log_connect_errors
|
||||
&mut smtp.log_connect_errors
|
||||
as *mut libc::c_int,
|
||||
b"SMTP-login failed for user %s (%s)\x00"
|
||||
as *const u8
|
||||
@@ -351,9 +346,9 @@ pub unsafe fn dc_smtp_connect(
|
||||
current_block = 12512295087047028901;
|
||||
} else {
|
||||
dc_log_event(
|
||||
(*smtp).context,
|
||||
smtp.context,
|
||||
Event::SMTP_CONNECTED,
|
||||
0i32,
|
||||
0,
|
||||
b"SMTP-login as %s ok.\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
(*lp).send_user,
|
||||
@@ -367,7 +362,7 @@ pub unsafe fn dc_smtp_connect(
|
||||
}
|
||||
match current_block {
|
||||
12512295087047028901 => {}
|
||||
_ => success = 1i32,
|
||||
_ => success = 1,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -377,13 +372,14 @@ pub unsafe fn dc_smtp_connect(
|
||||
}
|
||||
}
|
||||
if 0 == success {
|
||||
if !(*smtp).etpan.is_null() {
|
||||
mailsmtp_free((*smtp).etpan);
|
||||
(*smtp).etpan = 0 as *mut mailsmtp
|
||||
if !smtp.etpan.is_null() {
|
||||
mailsmtp_free(smtp.etpan);
|
||||
smtp.etpan = 0 as *mut mailsmtp
|
||||
}
|
||||
}
|
||||
return success;
|
||||
success
|
||||
}
|
||||
|
||||
unsafe extern "C" fn body_progress(
|
||||
_current: size_t,
|
||||
_maximum: size_t,
|
||||
@@ -392,138 +388,129 @@ unsafe extern "C" fn body_progress(
|
||||
}
|
||||
|
||||
pub unsafe fn dc_smtp_send_msg(
|
||||
mut smtp: *mut dc_smtp_t,
|
||||
mut recipients: *const clist,
|
||||
mut data_not_terminated: *const libc::c_char,
|
||||
mut data_bytes: size_t,
|
||||
smtp: &mut dc_smtp_t,
|
||||
recipients: *const clist,
|
||||
data_not_terminated: *const libc::c_char,
|
||||
data_bytes: size_t,
|
||||
) -> libc::c_int {
|
||||
let mut current_block: u64;
|
||||
let mut success: libc::c_int = 0i32;
|
||||
let mut r: libc::c_int = 0i32;
|
||||
let mut success: libc::c_int = 0;
|
||||
let mut r: libc::c_int = 0;
|
||||
let mut iter: *mut clistiter = 0 as *mut clistiter;
|
||||
if !smtp.is_null() {
|
||||
if recipients.is_null()
|
||||
|| (*recipients).count == 0i32
|
||||
|| data_not_terminated.is_null()
|
||||
|| data_bytes == 0
|
||||
{
|
||||
success = 1i32
|
||||
} else if !(*smtp).etpan.is_null() {
|
||||
// set source
|
||||
// the `etPanSMTPTest` is the ENVID from RFC 3461 (SMTP DSNs), we should probably replace it by a random value
|
||||
r = if 0 != (*smtp).esmtp {
|
||||
mailesmtp_mail(
|
||||
(*smtp).etpan,
|
||||
(*smtp).from,
|
||||
1i32,
|
||||
b"etPanSMTPTest\x00" as *const u8 as *const libc::c_char,
|
||||
)
|
||||
} else {
|
||||
mailsmtp_mail((*smtp).etpan, (*smtp).from)
|
||||
};
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to start message\x00" as *const u8 as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
} else {
|
||||
// set recipients
|
||||
// if the recipient is on the same server, this may fail at once.
|
||||
// TODO: question is what to do if one recipient in a group fails
|
||||
iter = (*recipients).first;
|
||||
loop {
|
||||
if iter.is_null() {
|
||||
current_block = 12039483399334584727;
|
||||
break;
|
||||
if recipients.is_null()
|
||||
|| (*recipients).count == 0
|
||||
|| data_not_terminated.is_null()
|
||||
|| data_bytes == 0
|
||||
{
|
||||
success = 1
|
||||
} else if !smtp.etpan.is_null() {
|
||||
// set source
|
||||
// the `etPanSMTPTest` is the ENVID from RFC 3461 (SMTP DSNs), we should probably replace it by a random value
|
||||
r = if 0 != smtp.esmtp {
|
||||
mailesmtp_mail(
|
||||
smtp.etpan,
|
||||
smtp.from,
|
||||
1,
|
||||
b"etPanSMTPTest\x00" as *const u8 as *const libc::c_char,
|
||||
)
|
||||
} else {
|
||||
mailsmtp_mail(smtp.etpan, smtp.from)
|
||||
};
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to start message\x00" as *const u8 as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
} else {
|
||||
// set recipients
|
||||
// if the recipient is on the same server, this may fail at once.
|
||||
// TODO: question is what to do if one recipient in a group fails
|
||||
iter = (*recipients).first;
|
||||
loop {
|
||||
if iter.is_null() {
|
||||
current_block = 12039483399334584727;
|
||||
break;
|
||||
}
|
||||
let mut rcpt: *const libc::c_char = (if !iter.is_null() {
|
||||
(*iter).data
|
||||
} else {
|
||||
0 as *mut libc::c_void
|
||||
}) as *const libc::c_char;
|
||||
r = if 0 != smtp.esmtp {
|
||||
mailesmtp_rcpt(smtp.etpan, rcpt, 2 | 4, 0 as *const libc::c_char)
|
||||
} else {
|
||||
mailsmtp_rcpt(smtp.etpan, rcpt)
|
||||
};
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to add recipient\x00" as *const u8 as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
current_block = 5498835644851925448;
|
||||
break;
|
||||
} else {
|
||||
iter = if !iter.is_null() {
|
||||
(*iter).next
|
||||
} else {
|
||||
0 as *mut clistcell_s
|
||||
}
|
||||
let mut rcpt: *const libc::c_char = (if !iter.is_null() {
|
||||
(*iter).data
|
||||
} else {
|
||||
0 as *mut libc::c_void
|
||||
})
|
||||
as *const libc::c_char;
|
||||
r = if 0 != (*smtp).esmtp {
|
||||
mailesmtp_rcpt((*smtp).etpan, rcpt, 2i32 | 4i32, 0 as *const libc::c_char)
|
||||
} else {
|
||||
mailsmtp_rcpt((*smtp).etpan, rcpt)
|
||||
};
|
||||
}
|
||||
}
|
||||
match current_block {
|
||||
5498835644851925448 => {}
|
||||
_ => {
|
||||
// message
|
||||
r = mailsmtp_data(smtp.etpan);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to add recipient\x00" as *const u8 as *const libc::c_char,
|
||||
b"SMTP failed to set data\x00" as *const u8 as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
current_block = 5498835644851925448;
|
||||
break;
|
||||
} else {
|
||||
iter = if !iter.is_null() {
|
||||
(*iter).next
|
||||
} else {
|
||||
0 as *mut clistcell_s
|
||||
}
|
||||
}
|
||||
}
|
||||
match current_block {
|
||||
5498835644851925448 => {}
|
||||
_ => {
|
||||
// message
|
||||
r = mailsmtp_data((*smtp).etpan);
|
||||
r = mailsmtp_data_message(smtp.etpan, data_not_terminated, data_bytes);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to set data\x00" as *const u8 as *const libc::c_char,
|
||||
b"SMTP failed to send message\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
} else {
|
||||
r = mailsmtp_data_message(
|
||||
(*smtp).etpan,
|
||||
data_not_terminated,
|
||||
data_bytes,
|
||||
dc_log_event(
|
||||
smtp.context,
|
||||
Event::SMTP_MESSAGE_SENT,
|
||||
0,
|
||||
b"Message was sent to SMTP server\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
);
|
||||
if r != MAILSMTP_NO_ERROR as libc::c_int {
|
||||
log_error(
|
||||
smtp,
|
||||
b"SMTP failed to send message\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
r,
|
||||
);
|
||||
} else {
|
||||
dc_log_event(
|
||||
(*smtp).context,
|
||||
Event::SMTP_MESSAGE_SENT,
|
||||
0i32,
|
||||
b"Message was sent to SMTP server\x00" as *const u8
|
||||
as *const libc::c_char,
|
||||
);
|
||||
success = 1i32
|
||||
}
|
||||
success = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return success;
|
||||
|
||||
success
|
||||
}
|
||||
unsafe fn log_error(
|
||||
mut smtp: *mut dc_smtp_t,
|
||||
mut what_failed: *const libc::c_char,
|
||||
mut r: libc::c_int,
|
||||
) {
|
||||
|
||||
unsafe fn log_error(smtp: &mut dc_smtp_t, what_failed: *const libc::c_char, r: libc::c_int) {
|
||||
let mut error_msg: *mut libc::c_char = dc_mprintf(
|
||||
b"%s: %s: %s\x00" as *const u8 as *const libc::c_char,
|
||||
what_failed,
|
||||
mailsmtp_strerror(r),
|
||||
(*(*smtp).etpan).response,
|
||||
(*smtp.etpan).response,
|
||||
);
|
||||
dc_log_warning(
|
||||
(*smtp).context,
|
||||
0i32,
|
||||
smtp.context,
|
||||
0,
|
||||
b"%s\x00" as *const u8 as *const libc::c_char,
|
||||
error_msg,
|
||||
);
|
||||
free((*smtp).error as *mut libc::c_void);
|
||||
(*smtp).error = error_msg;
|
||||
(*smtp).error_etpan = r;
|
||||
free(smtp.error as *mut libc::c_void);
|
||||
smtp.error = error_msg;
|
||||
smtp.error_etpan = r;
|
||||
}
|
||||
|
||||
@@ -9,17 +9,14 @@ use crate::x::*;
|
||||
|
||||
/* Return the string with the given ID by calling DC_EVENT_GET_STRING.
|
||||
The result must be free()'d! */
|
||||
pub unsafe fn dc_stock_str(
|
||||
mut context: *mut dc_context_t,
|
||||
mut id: libc::c_int,
|
||||
) -> *mut libc::c_char {
|
||||
pub unsafe fn dc_stock_str(mut context: &dc_context_t, mut id: libc::c_int) -> *mut libc::c_char {
|
||||
return get_string(context, id, 0i32);
|
||||
}
|
||||
unsafe fn get_string(
|
||||
mut context: *mut dc_context_t,
|
||||
mut id: libc::c_int,
|
||||
mut qty: libc::c_int,
|
||||
) -> *mut libc::c_char {
|
||||
) -> &libc::c_char {
|
||||
let mut ret: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
if !context.is_null() {
|
||||
ret = ((*context).cb)(
|
||||
@@ -218,7 +215,7 @@ pub unsafe fn dc_stock_str_repl_string(
|
||||
mut context: *mut dc_context_t,
|
||||
mut id: libc::c_int,
|
||||
mut to_insert: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
) -> &libc::c_char {
|
||||
let mut ret: *mut libc::c_char = get_string(context, id, 0i32);
|
||||
dc_str_replace(
|
||||
&mut ret,
|
||||
@@ -236,7 +233,7 @@ pub unsafe fn dc_stock_str_repl_int(
|
||||
mut context: *mut dc_context_t,
|
||||
mut id: libc::c_int,
|
||||
mut to_insert_int: libc::c_int,
|
||||
) -> *mut libc::c_char {
|
||||
) -> &libc::c_char {
|
||||
let mut ret: *mut libc::c_char = get_string(context, id, to_insert_int);
|
||||
let mut to_insert_str: *mut libc::c_char = dc_mprintf(
|
||||
b"%i\x00" as *const u8 as *const libc::c_char,
|
||||
@@ -262,7 +259,7 @@ pub unsafe fn dc_stock_str_repl_string2(
|
||||
mut id: libc::c_int,
|
||||
mut to_insert: *const libc::c_char,
|
||||
mut to_insert2: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
) -> &libc::c_char {
|
||||
let mut ret: *mut libc::c_char = get_string(context, id, 0i32);
|
||||
dc_str_replace(
|
||||
&mut ret,
|
||||
@@ -293,7 +290,7 @@ pub unsafe fn dc_stock_system_msg(
|
||||
mut param1: *const libc::c_char,
|
||||
mut param2: *const libc::c_char,
|
||||
mut from_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
) -> &libc::c_char {
|
||||
let mut ret: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
let mut mod_contact: *mut dc_contact_t = 0 as *mut dc_contact_t;
|
||||
let mut mod_displayname: *mut libc::c_char = 0 as *mut libc::c_char;
|
||||
|
||||
@@ -12,7 +12,7 @@ pub const DC_TOKEN_AUTH: dc_tokennamespc_t = 110;
|
||||
pub const DC_TOKEN_INVITENUMBER: dc_tokennamespc_t = 100;
|
||||
// Functions to read/write token from/to the database. A token is any string associated with a key.
|
||||
pub unsafe fn dc_token_save(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut namespc: dc_tokennamespc_t,
|
||||
mut foreign_id: uint32_t,
|
||||
mut token: *const libc::c_char,
|
||||
@@ -35,7 +35,7 @@ pub unsafe fn dc_token_save(
|
||||
sqlite3_finalize(stmt);
|
||||
}
|
||||
pub unsafe fn dc_token_lookup(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut namespc: dc_tokennamespc_t,
|
||||
mut foreign_id: uint32_t,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -56,7 +56,7 @@ pub unsafe fn dc_token_lookup(
|
||||
return token;
|
||||
}
|
||||
pub unsafe fn dc_token_exists(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut namespc: dc_tokennamespc_t,
|
||||
mut token: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
|
||||
@@ -887,7 +887,7 @@ pub unsafe fn dc_gm2local_offset() -> libc::c_long {
|
||||
return timeinfo.tm_gmtoff;
|
||||
}
|
||||
/* timesmearing */
|
||||
pub unsafe fn dc_smeared_time(mut context: *mut dc_context_t) -> time_t {
|
||||
pub unsafe fn dc_smeared_time(mut context: &dc_context_t) -> time_t {
|
||||
/* function returns a corrected time(NULL) */
|
||||
let mut now: time_t = time(0 as *mut time_t);
|
||||
pthread_mutex_lock(&mut (*context).smear_critical);
|
||||
@@ -897,7 +897,7 @@ pub unsafe fn dc_smeared_time(mut context: *mut dc_context_t) -> time_t {
|
||||
pthread_mutex_unlock(&mut (*context).smear_critical);
|
||||
return now;
|
||||
}
|
||||
pub unsafe fn dc_create_smeared_timestamp(mut context: *mut dc_context_t) -> time_t {
|
||||
pub unsafe fn dc_create_smeared_timestamp(mut context: &dc_context_t) -> time_t {
|
||||
let mut now: time_t = time(0 as *mut time_t);
|
||||
let mut ret: time_t = now;
|
||||
pthread_mutex_lock(&mut (*context).smear_critical);
|
||||
@@ -912,7 +912,7 @@ pub unsafe fn dc_create_smeared_timestamp(mut context: *mut dc_context_t) -> tim
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_create_smeared_timestamps(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut count: libc::c_int,
|
||||
) -> time_t {
|
||||
/* get a range to timestamps that can be used uniquely */
|
||||
@@ -1262,7 +1262,7 @@ pub unsafe fn dc_get_filemeta(
|
||||
return 0i32;
|
||||
}
|
||||
pub unsafe fn dc_get_abs_path(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
let mut current_block: u64;
|
||||
@@ -1301,7 +1301,7 @@ pub unsafe fn dc_get_abs_path(
|
||||
return pathNfilename_abs;
|
||||
}
|
||||
pub unsafe fn dc_file_exist(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let pathNfilename_abs = dc_get_abs_path(context, pathNfilename);
|
||||
@@ -1320,7 +1320,7 @@ pub unsafe fn dc_file_exist(
|
||||
}
|
||||
|
||||
pub unsafe fn dc_get_filebytes(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
) -> uint64_t {
|
||||
let pathNfilename_abs = dc_get_abs_path(context, pathNfilename);
|
||||
@@ -1337,7 +1337,7 @@ pub unsafe fn dc_get_filebytes(
|
||||
}
|
||||
|
||||
pub unsafe fn dc_delete_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
@@ -1359,7 +1359,7 @@ pub unsafe fn dc_delete_file(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_copy_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut src: *const libc::c_char,
|
||||
mut dest: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
@@ -1455,7 +1455,7 @@ pub unsafe fn dc_copy_file(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_create_folder(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut success = 0;
|
||||
@@ -1487,7 +1487,7 @@ pub unsafe fn dc_create_folder(
|
||||
}
|
||||
|
||||
pub unsafe fn dc_write_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
mut buf: *const libc::c_void,
|
||||
mut buf_bytes: size_t,
|
||||
@@ -1527,7 +1527,7 @@ pub unsafe fn dc_write_file(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_read_file(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfilename: *const libc::c_char,
|
||||
mut buf: *mut *mut libc::c_void,
|
||||
mut buf_bytes: *mut size_t,
|
||||
@@ -1579,7 +1579,7 @@ pub unsafe fn dc_read_file(
|
||||
return success;
|
||||
}
|
||||
pub unsafe fn dc_get_fine_pathNfilename(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut pathNfolder: *const libc::c_char,
|
||||
mut desired_filenameNsuffix__: *const libc::c_char,
|
||||
) -> *mut libc::c_char {
|
||||
@@ -1635,7 +1635,7 @@ pub unsafe fn dc_get_fine_pathNfilename(
|
||||
return ret;
|
||||
}
|
||||
pub unsafe fn dc_is_blobdir_path(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut path: *const libc::c_char,
|
||||
) -> libc::c_int {
|
||||
if strncmp(path, (*context).blobdir, strlen((*context).blobdir)) == 0i32
|
||||
@@ -1645,7 +1645,7 @@ pub unsafe fn dc_is_blobdir_path(
|
||||
}
|
||||
return 0i32;
|
||||
}
|
||||
pub unsafe fn dc_make_rel_path(mut context: *mut dc_context_t, mut path: *mut *mut libc::c_char) {
|
||||
pub unsafe fn dc_make_rel_path(mut context: &dc_context_t, mut path: *mut *mut libc::c_char) {
|
||||
if context.is_null() || path.is_null() || (*path).is_null() {
|
||||
return;
|
||||
}
|
||||
@@ -1658,7 +1658,7 @@ pub unsafe fn dc_make_rel_path(mut context: *mut dc_context_t, mut path: *mut *m
|
||||
};
|
||||
}
|
||||
pub unsafe fn dc_make_rel_and_copy(
|
||||
mut context: *mut dc_context_t,
|
||||
mut context: &dc_context_t,
|
||||
mut path: *mut *mut libc::c_char,
|
||||
) -> libc::c_int {
|
||||
let mut success: libc::c_int = 0i32;
|
||||
|
||||
@@ -1211,7 +1211,7 @@ pub type dc_get_config_t = Option<
|
||||
#[repr(C)]
|
||||
pub struct _dc_sqlite3 {
|
||||
pub cobj: *mut sqlite3,
|
||||
pub context: *mut dc_context_t,
|
||||
pub context: &dc_context_t,
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@@ -1254,7 +1254,7 @@ pub unsafe fn carray_get(mut array: *mut carray, mut indx: libc::c_uint) -> *mut
|
||||
* @return return 0 unless stated otherwise in the event parameter documentation
|
||||
*/
|
||||
pub type dc_callback_t =
|
||||
unsafe extern "C" fn(_: *mut dc_context_t, _: Event, _: uintptr_t, _: uintptr_t) -> uintptr_t;
|
||||
unsafe extern "C" fn(_: &dc_context_t, _: Event, _: uintptr_t, _: uintptr_t) -> uintptr_t;
|
||||
|
||||
pub const DC_MOVE_STATE_MOVING: libc::c_uint = 3;
|
||||
pub const DC_MOVE_STATE_STAY: libc::c_uint = 2;
|
||||
|
||||
Reference in New Issue
Block a user