mirror of
https://github.com/chatmail/core.git
synced 2026-05-02 21:06:31 +03:00
reduce code duplication
This commit is contained in:
900
src/dc_imap.rs
900
src/dc_imap.rs
@@ -1,8 +1,10 @@
|
||||
use c2rust_bitfields::BitfieldStruct;
|
||||
use libc;
|
||||
|
||||
use crate::dc_context::dc_context_t;
|
||||
use crate::types::*;
|
||||
|
||||
extern "C" {
|
||||
pub type mailstream_cancel;
|
||||
pub type sqlite3;
|
||||
#[no_mangle]
|
||||
fn calloc(_: libc::c_ulong, _: libc::c_ulong) -> *mut libc::c_void;
|
||||
#[no_mangle]
|
||||
@@ -248,871 +250,12 @@ extern "C" {
|
||||
#[no_mangle]
|
||||
fn dc_log_error(_: *mut dc_context_t, data1: libc::c_int, msg: *const libc::c_char, _: ...);
|
||||
}
|
||||
pub type __darwin_size_t = libc::c_ulong;
|
||||
pub type __darwin_ssize_t = libc::c_long;
|
||||
pub type __darwin_time_t = libc::c_long;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _opaque_pthread_cond_t {
|
||||
pub __sig: libc::c_long,
|
||||
pub __opaque: [libc::c_char; 40],
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _opaque_pthread_condattr_t {
|
||||
pub __sig: libc::c_long,
|
||||
pub __opaque: [libc::c_char; 8],
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _opaque_pthread_mutex_t {
|
||||
pub __sig: libc::c_long,
|
||||
pub __opaque: [libc::c_char; 56],
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _opaque_pthread_mutexattr_t {
|
||||
pub __sig: libc::c_long,
|
||||
pub __opaque: [libc::c_char; 8],
|
||||
}
|
||||
pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
|
||||
pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
|
||||
pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
|
||||
pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
|
||||
pub type uintptr_t = libc::c_ulong;
|
||||
pub type size_t = __darwin_size_t;
|
||||
pub type uint8_t = libc::c_uchar;
|
||||
pub type uint16_t = libc::c_ushort;
|
||||
pub type uint32_t = libc::c_uint;
|
||||
pub type ssize_t = __darwin_ssize_t;
|
||||
pub type time_t = __darwin_time_t;
|
||||
pub type pthread_cond_t = __darwin_pthread_cond_t;
|
||||
pub type pthread_condattr_t = __darwin_pthread_condattr_t;
|
||||
pub type pthread_mutex_t = __darwin_pthread_mutex_t;
|
||||
pub type pthread_mutexattr_t = __darwin_pthread_mutexattr_t;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct timespec {
|
||||
pub tv_sec: __darwin_time_t,
|
||||
pub tv_nsec: libc::c_long,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct carray_s {
|
||||
pub array: *mut *mut libc::c_void,
|
||||
pub len: libc::c_uint,
|
||||
pub max: libc::c_uint,
|
||||
}
|
||||
pub type carray = carray_s;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _mailstream {
|
||||
pub buffer_max_size: size_t,
|
||||
pub write_buffer: *mut libc::c_char,
|
||||
pub write_buffer_len: size_t,
|
||||
pub read_buffer: *mut libc::c_char,
|
||||
pub read_buffer_len: size_t,
|
||||
pub low: *mut mailstream_low,
|
||||
pub idle: *mut mailstream_cancel,
|
||||
pub idling: libc::c_int,
|
||||
pub logger: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: *mut mailstream,
|
||||
_: libc::c_int,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> (),
|
||||
>,
|
||||
pub logger_context: *mut libc::c_void,
|
||||
}
|
||||
pub type mailstream = _mailstream;
|
||||
pub type mailstream_low = _mailstream_low;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _mailstream_low {
|
||||
pub data: *mut libc::c_void,
|
||||
pub driver: *mut mailstream_low_driver,
|
||||
pub privacy: libc::c_int,
|
||||
pub identifier: *mut libc::c_char,
|
||||
pub timeout: libc::c_ulong,
|
||||
pub logger: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: *mut mailstream_low,
|
||||
_: libc::c_int,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> (),
|
||||
>,
|
||||
pub logger_context: *mut libc::c_void,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailstream_low_driver {
|
||||
pub mailstream_read: Option<
|
||||
unsafe extern "C" fn(_: *mut mailstream_low, _: *mut libc::c_void, _: size_t) -> ssize_t,
|
||||
>,
|
||||
pub mailstream_write: Option<
|
||||
unsafe extern "C" fn(_: *mut mailstream_low, _: *const libc::c_void, _: size_t) -> ssize_t,
|
||||
>,
|
||||
pub mailstream_close: Option<unsafe extern "C" fn(_: *mut mailstream_low) -> libc::c_int>,
|
||||
pub mailstream_get_fd: Option<unsafe extern "C" fn(_: *mut mailstream_low) -> libc::c_int>,
|
||||
pub mailstream_free: Option<unsafe extern "C" fn(_: *mut mailstream_low) -> ()>,
|
||||
pub mailstream_cancel: Option<unsafe extern "C" fn(_: *mut mailstream_low) -> ()>,
|
||||
pub mailstream_get_cancel:
|
||||
Option<unsafe extern "C" fn(_: *mut mailstream_low) -> *mut mailstream_cancel>,
|
||||
pub mailstream_get_certificate_chain:
|
||||
Option<unsafe extern "C" fn(_: *mut mailstream_low) -> *mut carray>,
|
||||
pub mailstream_setup_idle: Option<unsafe extern "C" fn(_: *mut mailstream_low) -> libc::c_int>,
|
||||
pub mailstream_unsetup_idle:
|
||||
Option<unsafe extern "C" fn(_: *mut mailstream_low) -> libc::c_int>,
|
||||
pub mailstream_interrupt_idle:
|
||||
Option<unsafe extern "C" fn(_: *mut mailstream_low) -> libc::c_int>,
|
||||
}
|
||||
pub type progress_function = unsafe extern "C" fn(_: size_t, _: size_t) -> ();
|
||||
pub type mailprogress_function =
|
||||
unsafe extern "C" fn(_: size_t, _: size_t, _: *mut libc::c_void) -> ();
|
||||
pub type unnamed = libc::c_uint;
|
||||
pub const MAILSTREAM_IDLE_CANCELLED: unnamed = 4;
|
||||
pub const MAILSTREAM_IDLE_TIMEOUT: unnamed = 3;
|
||||
pub const MAILSTREAM_IDLE_HASDATA: unnamed = 2;
|
||||
pub const MAILSTREAM_IDLE_INTERRUPTED: unnamed = 1;
|
||||
pub const MAILSTREAM_IDLE_ERROR: unnamed = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _MMAPString {
|
||||
pub str_0: *mut libc::c_char,
|
||||
pub len: size_t,
|
||||
pub allocated_len: size_t,
|
||||
pub fd: libc::c_int,
|
||||
pub mmapped_size: size_t,
|
||||
}
|
||||
pub type MMAPString = _MMAPString;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct clistcell_s {
|
||||
pub data: *mut libc::c_void,
|
||||
pub previous: *mut clistcell_s,
|
||||
pub next: *mut clistcell_s,
|
||||
}
|
||||
pub type clistcell = clistcell_s;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct clist_s {
|
||||
pub first: *mut clistcell,
|
||||
pub last: *mut clistcell,
|
||||
pub count: libc::c_int,
|
||||
}
|
||||
pub type clist = clist_s;
|
||||
pub type clistiter = clistcell;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailsmtp {
|
||||
pub stream: *mut mailstream,
|
||||
pub progr_rate: size_t,
|
||||
pub progr_fun: Option<unsafe extern "C" fn(_: size_t, _: size_t) -> ()>,
|
||||
pub response: *mut libc::c_char,
|
||||
pub line_buffer: *mut MMAPString,
|
||||
pub response_buffer: *mut MMAPString,
|
||||
pub esmtp: libc::c_int,
|
||||
pub auth: libc::c_int,
|
||||
pub smtp_sasl: unnamed_0,
|
||||
pub smtp_max_msg_size: size_t,
|
||||
pub smtp_progress_fun:
|
||||
Option<unsafe extern "C" fn(_: size_t, _: size_t, _: *mut libc::c_void) -> ()>,
|
||||
pub smtp_progress_context: *mut libc::c_void,
|
||||
pub response_code: libc::c_int,
|
||||
pub smtp_timeout: time_t,
|
||||
pub smtp_logger: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: *mut mailsmtp,
|
||||
_: libc::c_int,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> (),
|
||||
>,
|
||||
pub smtp_logger_context: *mut libc::c_void,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct unnamed_0 {
|
||||
pub sasl_conn: *mut libc::c_void,
|
||||
pub sasl_server_fqdn: *const libc::c_char,
|
||||
pub sasl_login: *const libc::c_char,
|
||||
pub sasl_auth_name: *const libc::c_char,
|
||||
pub sasl_password: *const libc::c_char,
|
||||
pub sasl_realm: *const libc::c_char,
|
||||
pub sasl_secret: *mut libc::c_void,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body {
|
||||
pub bd_type: libc::c_int,
|
||||
pub bd_data: unnamed_1,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_1 {
|
||||
pub bd_body_1part: *mut mailimap_body_type_1part,
|
||||
pub bd_body_mpart: *mut mailimap_body_type_mpart,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_type_mpart {
|
||||
pub bd_list: *mut clist,
|
||||
pub bd_media_subtype: *mut libc::c_char,
|
||||
pub bd_ext_mpart: *mut mailimap_body_ext_mpart,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_ext_mpart {
|
||||
pub bd_parameter: *mut mailimap_body_fld_param,
|
||||
pub bd_disposition: *mut mailimap_body_fld_dsp,
|
||||
pub bd_language: *mut mailimap_body_fld_lang,
|
||||
pub bd_loc: *mut libc::c_char,
|
||||
pub bd_extension_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_fld_lang {
|
||||
pub lg_type: libc::c_int,
|
||||
pub lg_data: unnamed_2,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_2 {
|
||||
pub lg_single: *mut libc::c_char,
|
||||
pub lg_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_fld_dsp {
|
||||
pub dsp_type: *mut libc::c_char,
|
||||
pub dsp_attributes: *mut mailimap_body_fld_param,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_fld_param {
|
||||
pub pa_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_type_1part {
|
||||
pub bd_type: libc::c_int,
|
||||
pub bd_data: unnamed_3,
|
||||
pub bd_ext_1part: *mut mailimap_body_ext_1part,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_ext_1part {
|
||||
pub bd_md5: *mut libc::c_char,
|
||||
pub bd_disposition: *mut mailimap_body_fld_dsp,
|
||||
pub bd_language: *mut mailimap_body_fld_lang,
|
||||
pub bd_loc: *mut libc::c_char,
|
||||
pub bd_extension_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_3 {
|
||||
pub bd_type_basic: *mut mailimap_body_type_basic,
|
||||
pub bd_type_msg: *mut mailimap_body_type_msg,
|
||||
pub bd_type_text: *mut mailimap_body_type_text,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_type_text {
|
||||
pub bd_media_text: *mut libc::c_char,
|
||||
pub bd_fields: *mut mailimap_body_fields,
|
||||
pub bd_lines: uint32_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_fields {
|
||||
pub bd_parameter: *mut mailimap_body_fld_param,
|
||||
pub bd_id: *mut libc::c_char,
|
||||
pub bd_description: *mut libc::c_char,
|
||||
pub bd_encoding: *mut mailimap_body_fld_enc,
|
||||
pub bd_size: uint32_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_fld_enc {
|
||||
pub enc_type: libc::c_int,
|
||||
pub enc_value: *mut libc::c_char,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_type_msg {
|
||||
pub bd_fields: *mut mailimap_body_fields,
|
||||
pub bd_envelope: *mut mailimap_envelope,
|
||||
pub bd_body: *mut mailimap_body,
|
||||
pub bd_lines: uint32_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_envelope {
|
||||
pub env_date: *mut libc::c_char,
|
||||
pub env_subject: *mut libc::c_char,
|
||||
pub env_from: *mut mailimap_env_from,
|
||||
pub env_sender: *mut mailimap_env_sender,
|
||||
pub env_reply_to: *mut mailimap_env_reply_to,
|
||||
pub env_to: *mut mailimap_env_to,
|
||||
pub env_cc: *mut mailimap_env_cc,
|
||||
pub env_bcc: *mut mailimap_env_bcc,
|
||||
pub env_in_reply_to: *mut libc::c_char,
|
||||
pub env_message_id: *mut libc::c_char,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_bcc {
|
||||
pub bcc_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_cc {
|
||||
pub cc_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_to {
|
||||
pub to_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_reply_to {
|
||||
pub rt_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_sender {
|
||||
pub snd_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_env_from {
|
||||
pub frm_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_body_type_basic {
|
||||
pub bd_media_basic: *mut mailimap_media_basic,
|
||||
pub bd_fields: *mut mailimap_body_fields,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_media_basic {
|
||||
pub med_type: libc::c_int,
|
||||
pub med_basic_type: *mut libc::c_char,
|
||||
pub med_subtype: *mut libc::c_char,
|
||||
}
|
||||
pub type unnamed_4 = libc::c_uint;
|
||||
pub const MAILIMAP_CAPABILITY_NAME: unnamed_4 = 1;
|
||||
pub const MAILIMAP_CAPABILITY_AUTH_TYPE: unnamed_4 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_capability {
|
||||
pub cap_type: libc::c_int,
|
||||
pub cap_data: unnamed_5,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_5 {
|
||||
pub cap_auth_type: *mut libc::c_char,
|
||||
pub cap_name: *mut libc::c_char,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_capability_data {
|
||||
pub cap_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_extension_data {
|
||||
pub ext_extension: *mut mailimap_extension_api,
|
||||
pub ext_type: libc::c_int,
|
||||
pub ext_data: *mut libc::c_void,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_extension_api {
|
||||
pub ext_name: *mut libc::c_char,
|
||||
pub ext_id: libc::c_int,
|
||||
pub ext_parser: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: libc::c_int,
|
||||
_: *mut mailstream,
|
||||
_: *mut MMAPString,
|
||||
_: *mut mailimap_parser_context,
|
||||
_: *mut size_t,
|
||||
_: *mut *mut mailimap_extension_data,
|
||||
_: size_t,
|
||||
_: Option<unsafe extern "C" fn(_: size_t, _: size_t) -> ()>,
|
||||
) -> libc::c_int,
|
||||
>,
|
||||
pub ext_free: Option<unsafe extern "C" fn(_: *mut mailimap_extension_data) -> ()>,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_parser_context {
|
||||
pub is_rambler_workaround_enabled: libc::c_int,
|
||||
pub is_qip_workaround_enabled: libc::c_int,
|
||||
pub msg_body_handler: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: libc::c_int,
|
||||
_: *mut mailimap_msg_att_body_section,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> bool,
|
||||
>,
|
||||
pub msg_body_handler_context: *mut libc::c_void,
|
||||
pub msg_body_section: *mut mailimap_msg_att_body_section,
|
||||
pub msg_body_att_type: libc::c_int,
|
||||
pub msg_body_parse_in_progress: bool,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_msg_att_body_section {
|
||||
pub sec_section: *mut mailimap_section,
|
||||
pub sec_origin_octet: uint32_t,
|
||||
pub sec_body_part: *mut libc::c_char,
|
||||
pub sec_length: size_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_section {
|
||||
pub sec_spec: *mut mailimap_section_spec,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_section_spec {
|
||||
pub sec_type: libc::c_int,
|
||||
pub sec_data: unnamed_6,
|
||||
pub sec_text: *mut mailimap_section_text,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_section_text {
|
||||
pub sec_type: libc::c_int,
|
||||
pub sec_msgtext: *mut mailimap_section_msgtext,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_section_msgtext {
|
||||
pub sec_type: libc::c_int,
|
||||
pub sec_header_list: *mut mailimap_header_list,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_header_list {
|
||||
pub hdr_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_6 {
|
||||
pub sec_msgtext: *mut mailimap_section_msgtext,
|
||||
pub sec_part: *mut mailimap_section_part,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_section_part {
|
||||
pub sec_id: *mut clist,
|
||||
}
|
||||
pub type mailimap_msg_body_handler = unsafe extern "C" fn(
|
||||
_: libc::c_int,
|
||||
_: *mut mailimap_msg_att_body_section,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> bool;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_date_time {
|
||||
pub dt_day: libc::c_int,
|
||||
pub dt_month: libc::c_int,
|
||||
pub dt_year: libc::c_int,
|
||||
pub dt_hour: libc::c_int,
|
||||
pub dt_min: libc::c_int,
|
||||
pub dt_sec: libc::c_int,
|
||||
pub dt_zone: libc::c_int,
|
||||
}
|
||||
pub type unnamed_7 = libc::c_uint;
|
||||
pub const MAILIMAP_FLAG_EXTENSION: unnamed_7 = 6;
|
||||
pub const MAILIMAP_FLAG_KEYWORD: unnamed_7 = 5;
|
||||
pub const MAILIMAP_FLAG_DRAFT: unnamed_7 = 4;
|
||||
pub const MAILIMAP_FLAG_SEEN: unnamed_7 = 3;
|
||||
pub const MAILIMAP_FLAG_DELETED: unnamed_7 = 2;
|
||||
pub const MAILIMAP_FLAG_FLAGGED: unnamed_7 = 1;
|
||||
pub const MAILIMAP_FLAG_ANSWERED: unnamed_7 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_flag {
|
||||
pub fl_type: libc::c_int,
|
||||
pub fl_data: unnamed_8,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_8 {
|
||||
pub fl_keyword: *mut libc::c_char,
|
||||
pub fl_extension: *mut libc::c_char,
|
||||
}
|
||||
pub type unnamed_9 = libc::c_uint;
|
||||
pub const MAILIMAP_FLAG_FETCH_OTHER: unnamed_9 = 2;
|
||||
pub const MAILIMAP_FLAG_FETCH_RECENT: unnamed_9 = 1;
|
||||
pub const MAILIMAP_FLAG_FETCH_ERROR: unnamed_9 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_flag_fetch {
|
||||
pub fl_type: libc::c_int,
|
||||
pub fl_flag: *mut mailimap_flag,
|
||||
}
|
||||
pub type unnamed_10 = libc::c_uint;
|
||||
pub const MAILIMAP_FLAG_PERM_ALL: unnamed_10 = 2;
|
||||
pub const MAILIMAP_FLAG_PERM_FLAG: unnamed_10 = 1;
|
||||
pub const MAILIMAP_FLAG_PERM_ERROR: unnamed_10 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_flag_perm {
|
||||
pub fl_type: libc::c_int,
|
||||
pub fl_flag: *mut mailimap_flag,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_flag_list {
|
||||
pub fl_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_mailbox_data_status {
|
||||
pub st_mailbox: *mut libc::c_char,
|
||||
pub st_info_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_msg_att {
|
||||
pub att_list: *mut clist,
|
||||
pub att_number: uint32_t,
|
||||
}
|
||||
pub type unnamed_11 = libc::c_uint;
|
||||
pub const MAILIMAP_MSG_ATT_ITEM_EXTENSION: unnamed_11 = 3;
|
||||
pub const MAILIMAP_MSG_ATT_ITEM_STATIC: unnamed_11 = 2;
|
||||
pub const MAILIMAP_MSG_ATT_ITEM_DYNAMIC: unnamed_11 = 1;
|
||||
pub const MAILIMAP_MSG_ATT_ITEM_ERROR: unnamed_11 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_msg_att_item {
|
||||
pub att_type: libc::c_int,
|
||||
pub att_data: unnamed_12,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_12 {
|
||||
pub att_dyn: *mut mailimap_msg_att_dynamic,
|
||||
pub att_static: *mut mailimap_msg_att_static,
|
||||
pub att_extension_data: *mut mailimap_extension_data,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_msg_att_static {
|
||||
pub att_type: libc::c_int,
|
||||
pub att_data: unnamed_13,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_13 {
|
||||
pub att_env: *mut mailimap_envelope,
|
||||
pub att_internal_date: *mut mailimap_date_time,
|
||||
pub att_rfc822: unnamed_16,
|
||||
pub att_rfc822_header: unnamed_15,
|
||||
pub att_rfc822_text: unnamed_14,
|
||||
pub att_rfc822_size: uint32_t,
|
||||
pub att_bodystructure: *mut mailimap_body,
|
||||
pub att_body: *mut mailimap_body,
|
||||
pub att_body_section: *mut mailimap_msg_att_body_section,
|
||||
pub att_uid: uint32_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct unnamed_14 {
|
||||
pub att_content: *mut libc::c_char,
|
||||
pub att_length: size_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct unnamed_15 {
|
||||
pub att_content: *mut libc::c_char,
|
||||
pub att_length: size_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct unnamed_16 {
|
||||
pub att_content: *mut libc::c_char,
|
||||
pub att_length: size_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_msg_att_dynamic {
|
||||
pub att_list: *mut clist,
|
||||
}
|
||||
pub type unnamed_17 = libc::c_uint;
|
||||
pub const MAILIMAP_MSG_ATT_UID: unnamed_17 = 10;
|
||||
pub const MAILIMAP_MSG_ATT_BODY_SECTION: unnamed_17 = 9;
|
||||
pub const MAILIMAP_MSG_ATT_BODYSTRUCTURE: unnamed_17 = 8;
|
||||
pub const MAILIMAP_MSG_ATT_BODY: unnamed_17 = 7;
|
||||
pub const MAILIMAP_MSG_ATT_RFC822_SIZE: unnamed_17 = 6;
|
||||
pub const MAILIMAP_MSG_ATT_RFC822_TEXT: unnamed_17 = 5;
|
||||
pub const MAILIMAP_MSG_ATT_RFC822_HEADER: unnamed_17 = 4;
|
||||
pub const MAILIMAP_MSG_ATT_RFC822: unnamed_17 = 3;
|
||||
pub const MAILIMAP_MSG_ATT_INTERNALDATE: unnamed_17 = 2;
|
||||
pub const MAILIMAP_MSG_ATT_ENVELOPE: unnamed_17 = 1;
|
||||
pub const MAILIMAP_MSG_ATT_ERROR: unnamed_17 = 0;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_set_item {
|
||||
pub set_first: uint32_t,
|
||||
pub set_last: uint32_t,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_set {
|
||||
pub set_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_fetch_att {
|
||||
pub att_type: libc::c_int,
|
||||
pub att_section: *mut mailimap_section,
|
||||
pub att_offset: uint32_t,
|
||||
pub att_size: uint32_t,
|
||||
pub att_extension: *mut libc::c_char,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_fetch_type {
|
||||
pub ft_type: libc::c_int,
|
||||
pub ft_data: unnamed_18,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub union unnamed_18 {
|
||||
pub ft_fetch_att: *mut mailimap_fetch_att,
|
||||
pub ft_fetch_att_list: *mut clist,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_store_att_flags {
|
||||
pub fl_sign: libc::c_int,
|
||||
pub fl_silent: libc::c_int,
|
||||
pub fl_flag_list: *mut mailimap_flag_list,
|
||||
}
|
||||
pub type mailimap_msg_att_handler =
|
||||
unsafe extern "C" fn(_: *mut mailimap_msg_att, _: *mut libc::c_void) -> ();
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap {
|
||||
pub imap_response: *mut libc::c_char,
|
||||
pub imap_stream: *mut mailstream,
|
||||
pub imap_progr_rate: size_t,
|
||||
pub imap_progr_fun: Option<unsafe extern "C" fn(_: size_t, _: size_t) -> ()>,
|
||||
pub imap_stream_buffer: *mut MMAPString,
|
||||
pub imap_response_buffer: *mut MMAPString,
|
||||
pub imap_state: libc::c_int,
|
||||
pub imap_tag: libc::c_int,
|
||||
pub imap_connection_info: *mut mailimap_connection_info,
|
||||
pub imap_selection_info: *mut mailimap_selection_info,
|
||||
pub imap_response_info: *mut mailimap_response_info,
|
||||
pub imap_sasl: unnamed_19,
|
||||
pub imap_idle_timestamp: time_t,
|
||||
pub imap_idle_maxdelay: time_t,
|
||||
pub imap_body_progress_fun:
|
||||
Option<unsafe extern "C" fn(_: size_t, _: size_t, _: *mut libc::c_void) -> ()>,
|
||||
pub imap_items_progress_fun:
|
||||
Option<unsafe extern "C" fn(_: size_t, _: size_t, _: *mut libc::c_void) -> ()>,
|
||||
pub imap_progress_context: *mut libc::c_void,
|
||||
pub imap_msg_att_handler:
|
||||
Option<unsafe extern "C" fn(_: *mut mailimap_msg_att, _: *mut libc::c_void) -> ()>,
|
||||
pub imap_msg_att_handler_context: *mut libc::c_void,
|
||||
pub imap_msg_body_handler: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: libc::c_int,
|
||||
_: *mut mailimap_msg_att_body_section,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> bool,
|
||||
>,
|
||||
pub imap_msg_body_handler_context: *mut libc::c_void,
|
||||
pub imap_timeout: time_t,
|
||||
pub imap_logger: Option<
|
||||
unsafe extern "C" fn(
|
||||
_: *mut mailimap,
|
||||
_: libc::c_int,
|
||||
_: *const libc::c_char,
|
||||
_: size_t,
|
||||
_: *mut libc::c_void,
|
||||
) -> (),
|
||||
>,
|
||||
pub imap_logger_context: *mut libc::c_void,
|
||||
pub is_163_workaround_enabled: libc::c_int,
|
||||
pub is_rambler_workaround_enabled: libc::c_int,
|
||||
pub is_qip_workaround_enabled: libc::c_int,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct unnamed_19 {
|
||||
pub sasl_conn: *mut libc::c_void,
|
||||
pub sasl_server_fqdn: *const libc::c_char,
|
||||
pub sasl_login: *const libc::c_char,
|
||||
pub sasl_auth_name: *const libc::c_char,
|
||||
pub sasl_password: *const libc::c_char,
|
||||
pub sasl_realm: *const libc::c_char,
|
||||
pub sasl_secret: *mut libc::c_void,
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_response_info {
|
||||
pub rsp_alert: *mut libc::c_char,
|
||||
pub rsp_parse: *mut libc::c_char,
|
||||
pub rsp_badcharset: *mut clist,
|
||||
pub rsp_trycreate: libc::c_int,
|
||||
pub rsp_mailbox_list: *mut clist,
|
||||
pub rsp_mailbox_lsub: *mut clist,
|
||||
pub rsp_search_result: *mut clist,
|
||||
pub rsp_status: *mut mailimap_mailbox_data_status,
|
||||
pub rsp_expunged: *mut clist,
|
||||
pub rsp_fetch_list: *mut clist,
|
||||
pub rsp_extension_list: *mut clist,
|
||||
pub rsp_atom: *mut libc::c_char,
|
||||
pub rsp_value: *mut libc::c_char,
|
||||
}
|
||||
#[derive(BitfieldStruct, Clone, Copy)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_selection_info {
|
||||
pub sel_perm_flags: *mut clist,
|
||||
pub sel_perm: libc::c_int,
|
||||
pub sel_uidnext: uint32_t,
|
||||
pub sel_uidvalidity: uint32_t,
|
||||
pub sel_first_unseen: uint32_t,
|
||||
pub sel_flags: *mut mailimap_flag_list,
|
||||
pub sel_exists: uint32_t,
|
||||
pub sel_recent: uint32_t,
|
||||
pub sel_unseen: uint32_t,
|
||||
#[bitfield(name = "sel_has_exists", ty = "uint8_t", bits = "0..=0")]
|
||||
#[bitfield(name = "sel_has_recent", ty = "uint8_t", bits = "1..=1")]
|
||||
pub sel_has_exists_sel_has_recent: [u8; 1],
|
||||
pub _pad: [u8; 3],
|
||||
}
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct mailimap_connection_info {
|
||||
pub imap_capability: *mut mailimap_capability_data,
|
||||
}
|
||||
pub type unnamed_20 = libc::c_uint;
|
||||
pub const MAILIMAP_ERROR_CLIENTID: unnamed_20 = 46;
|
||||
pub const MAILIMAP_ERROR_CUSTOM_COMMAND: unnamed_20 = 45;
|
||||
pub const MAILIMAP_ERROR_NEEDS_MORE_DATA: unnamed_20 = 44;
|
||||
pub const MAILIMAP_ERROR_SSL: unnamed_20 = 43;
|
||||
pub const MAILIMAP_ERROR_SASL: unnamed_20 = 42;
|
||||
pub const MAILIMAP_ERROR_EXTENSION: unnamed_20 = 41;
|
||||
pub const MAILIMAP_ERROR_INVAL: unnamed_20 = 40;
|
||||
pub const MAILIMAP_ERROR_STARTTLS: unnamed_20 = 39;
|
||||
pub const MAILIMAP_ERROR_UNSUBSCRIBE: unnamed_20 = 38;
|
||||
pub const MAILIMAP_ERROR_SUBSCRIBE: unnamed_20 = 37;
|
||||
pub const MAILIMAP_ERROR_UID_STORE: unnamed_20 = 36;
|
||||
pub const MAILIMAP_ERROR_STORE: unnamed_20 = 35;
|
||||
pub const MAILIMAP_ERROR_STATUS: unnamed_20 = 34;
|
||||
pub const MAILIMAP_ERROR_SELECT: unnamed_20 = 33;
|
||||
pub const MAILIMAP_ERROR_UID_SEARCH: unnamed_20 = 32;
|
||||
pub const MAILIMAP_ERROR_SEARCH: unnamed_20 = 31;
|
||||
pub const MAILIMAP_ERROR_RENAME: unnamed_20 = 30;
|
||||
pub const MAILIMAP_ERROR_LSUB: unnamed_20 = 29;
|
||||
pub const MAILIMAP_ERROR_LOGIN: unnamed_20 = 28;
|
||||
pub const MAILIMAP_ERROR_LIST: unnamed_20 = 27;
|
||||
pub const MAILIMAP_ERROR_UID_FETCH: unnamed_20 = 26;
|
||||
pub const MAILIMAP_ERROR_FETCH: unnamed_20 = 25;
|
||||
pub const MAILIMAP_ERROR_EXAMINE: unnamed_20 = 24;
|
||||
pub const MAILIMAP_ERROR_DELETE: unnamed_20 = 23;
|
||||
pub const MAILIMAP_ERROR_CREATE: unnamed_20 = 22;
|
||||
pub const MAILIMAP_ERROR_UID_MOVE: unnamed_20 = 21;
|
||||
pub const MAILIMAP_ERROR_MOVE: unnamed_20 = 20;
|
||||
pub const MAILIMAP_ERROR_UID_COPY: unnamed_20 = 19;
|
||||
pub const MAILIMAP_ERROR_COPY: unnamed_20 = 18;
|
||||
pub const MAILIMAP_ERROR_EXPUNGE: unnamed_20 = 17;
|
||||
pub const MAILIMAP_ERROR_CLOSE: unnamed_20 = 16;
|
||||
pub const MAILIMAP_ERROR_CHECK: unnamed_20 = 15;
|
||||
pub const MAILIMAP_ERROR_CAPABILITY: unnamed_20 = 14;
|
||||
pub const MAILIMAP_ERROR_LOGOUT: unnamed_20 = 13;
|
||||
pub const MAILIMAP_ERROR_NOOP: unnamed_20 = 12;
|
||||
pub const MAILIMAP_ERROR_APPEND: unnamed_20 = 11;
|
||||
pub const MAILIMAP_ERROR_DONT_ACCEPT_CONNECTION: unnamed_20 = 10;
|
||||
pub const MAILIMAP_ERROR_PROTOCOL: unnamed_20 = 9;
|
||||
pub const MAILIMAP_ERROR_FATAL: unnamed_20 = 8;
|
||||
pub const MAILIMAP_ERROR_MEMORY: unnamed_20 = 7;
|
||||
pub const MAILIMAP_ERROR_CONNECTION_REFUSED: unnamed_20 = 6;
|
||||
pub const MAILIMAP_ERROR_PARSE: unnamed_20 = 5;
|
||||
pub const MAILIMAP_ERROR_STREAM: unnamed_20 = 4;
|
||||
pub const MAILIMAP_ERROR_BAD_STATE: unnamed_20 = 3;
|
||||
pub const MAILIMAP_NO_ERROR_NON_AUTHENTICATED: unnamed_20 = 2;
|
||||
pub const MAILIMAP_NO_ERROR_AUTHENTICATED: unnamed_20 = 1;
|
||||
pub const MAILIMAP_NO_ERROR: unnamed_20 = 0;
|
||||
|
||||
/* define DC_USE_RPGP to enable use of rPGP instead of netpgp where available;
|
||||
preferrably, this should be done in the project configuration currently */
|
||||
//#define DC_USE_RPGP 1
|
||||
/* Includes that are used frequently. This file may also be used to create predefined headers. */
|
||||
/* * Structure behind dc_context_t */
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _dc_context {
|
||||
pub magic: uint32_t,
|
||||
pub userdata: *mut libc::c_void,
|
||||
pub dbfile: *mut libc::c_char,
|
||||
pub blobdir: *mut libc::c_char,
|
||||
pub sql: *mut dc_sqlite3_t,
|
||||
pub inbox: *mut dc_imap_t,
|
||||
pub inboxidle_condmutex: pthread_mutex_t,
|
||||
pub perform_inbox_jobs_needed: libc::c_int,
|
||||
pub probe_imap_network: libc::c_int,
|
||||
pub sentbox_thread: dc_jobthread_t,
|
||||
pub mvbox_thread: dc_jobthread_t,
|
||||
pub smtp: *mut dc_smtp_t,
|
||||
pub smtpidle_cond: pthread_cond_t,
|
||||
pub smtpidle_condmutex: pthread_mutex_t,
|
||||
pub smtpidle_condflag: libc::c_int,
|
||||
pub smtp_suspended: libc::c_int,
|
||||
pub smtp_doing_jobs: libc::c_int,
|
||||
pub perform_smtp_jobs_needed: libc::c_int,
|
||||
pub probe_smtp_network: libc::c_int,
|
||||
pub oauth2_critical: pthread_mutex_t,
|
||||
pub cb: dc_callback_t,
|
||||
pub os_name: *mut libc::c_char,
|
||||
pub cmdline_sel_chat_id: uint32_t,
|
||||
pub bob_expects: libc::c_int,
|
||||
pub bobs_status: libc::c_int,
|
||||
pub bobs_qr_scan: *mut dc_lot_t,
|
||||
pub bobs_qr_critical: pthread_mutex_t,
|
||||
pub last_smeared_timestamp: time_t,
|
||||
pub smear_critical: pthread_mutex_t,
|
||||
pub ongoing_running: libc::c_int,
|
||||
pub shall_stop_ongoing: libc::c_int,
|
||||
}
|
||||
pub type dc_lot_t = _dc_lot;
|
||||
/* * Structure behind dc_lot_t */
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _dc_lot {
|
||||
pub magic: uint32_t,
|
||||
pub text1_meaning: libc::c_int,
|
||||
pub text1: *mut libc::c_char,
|
||||
pub text2: *mut libc::c_char,
|
||||
pub timestamp: time_t,
|
||||
pub state: libc::c_int,
|
||||
pub id: uint32_t,
|
||||
pub fingerprint: *mut libc::c_char,
|
||||
pub invitenumber: *mut libc::c_char,
|
||||
pub auth: *mut libc::c_char,
|
||||
}
|
||||
|
||||
/* *
|
||||
* Callback function that should be given to dc_context_new().
|
||||
*
|
||||
@@ -1307,35 +450,8 @@ pub type dc_callback_t = Option<
|
||||
* SQLite database for offline functionality and for account-related
|
||||
* settings.
|
||||
*/
|
||||
pub type dc_context_t = _dc_context;
|
||||
/* ** library-private **********************************************************/
|
||||
pub type dc_smtp_t = _dc_smtp;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _dc_smtp {
|
||||
pub etpan: *mut mailsmtp,
|
||||
pub from: *mut libc::c_char,
|
||||
pub esmtp: libc::c_int,
|
||||
pub log_connect_errors: libc::c_int,
|
||||
pub context: *mut dc_context_t,
|
||||
pub error: *mut libc::c_char,
|
||||
pub error_etpan: libc::c_int,
|
||||
}
|
||||
pub type dc_jobthread_t = _dc_jobthread;
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct _dc_jobthread {
|
||||
pub context: *mut dc_context_t,
|
||||
pub name: *mut libc::c_char,
|
||||
pub folder_config_name: *mut libc::c_char,
|
||||
pub imap: *mut _dc_imap,
|
||||
pub mutex: pthread_mutex_t,
|
||||
pub idle_cond: pthread_cond_t,
|
||||
pub idle_condflag: libc::c_int,
|
||||
pub jobs_needed: libc::c_int,
|
||||
pub suspended: libc::c_int,
|
||||
pub using_handle: libc::c_int,
|
||||
}
|
||||
|
||||
/* *
|
||||
* Library-internal.
|
||||
*/
|
||||
@@ -1406,7 +522,7 @@ pub type dc_get_config_t = Option<
|
||||
) -> *mut libc::c_char,
|
||||
>;
|
||||
/* ** library-private **********************************************************/
|
||||
pub type dc_sqlite3_t = _dc_sqlite3;
|
||||
use crate::dc_sqlite3::dc_sqlite3_t;
|
||||
/* *
|
||||
* Library-internal.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user