23 #ifndef __MRMAILBOX_H__ 24 #define __MRMAILBOX_H__ 30 #define MR_VERSION_MAJOR 0 31 #define MR_VERSION_MINOR 11 32 #define MR_VERSION_REVISION 1 151 #include <libetpan/libetpan.h> 153 #include "mrchatlist.h" 156 #include "mrcontact.h" 162 typedef struct mrimap_t mrimap_t;
163 typedef struct mrsmtp_t mrsmtp_t;
164 typedef struct mrsqlite3_t mrsqlite3_t;
165 typedef struct mrjob_t mrjob_t;
166 typedef struct mrmimeparser_t mrmimeparser_t;
194 typedef struct mrmailbox_t
196 #define MR_MAILBOX_MAGIC 0x11a11807 209 pthread_t m_job_thread;
210 pthread_cond_t m_job_cond;
211 pthread_mutex_t m_job_condmutex;
219 uint32_t m_cmdline_sel_chat_id;
222 pthread_mutex_t m_wake_lock_critical;
226 #define MR_LOG_RINGBUF_SIZE 200 227 pthread_mutex_t m_log_ringbuf_critical;
228 char* m_log_ringbuf[MR_LOG_RINGBUF_SIZE];
230 time_t m_log_ringbuf_times[MR_LOG_RINGBUF_SIZE];
232 int m_log_ringbuf_pos;
241 int mrmailbox_open (mrmailbox_t*,
const char* dbfile,
const char* blobdir);
262 #define MR_GCL_ARCHIVED_ONLY 0x01 263 #define MR_GCL_NO_SPECIALS 0x02 272 uint32_t
mrmailbox_send_image_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height);
273 uint32_t
mrmailbox_send_video_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height,
int duration);
274 uint32_t
mrmailbox_send_voice_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int duration);
275 uint32_t
mrmailbox_send_audio_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int duration,
const char* author,
const char* trackname);
280 #define MR_GCM_ADDDAYMARKER 0x01 330 #define MR_IMEX_EXPORT_SELF_KEYS 1 331 #define MR_IMEX_IMPORT_SELF_KEYS 2 332 #define MR_IMEX_EXPORT_BACKUP 11 333 #define MR_IMEX_IMPORT_BACKUP 12 334 #define MR_BAK_PREFIX "delta-chat" 335 #define MR_BAK_SUFFIX "bak" 336 int mrmailbox_imex (mrmailbox_t*,
int what,
const char* param1,
const char* param2);
345 void mrmailbox_log_error (mrmailbox_t*,
int code,
const char* msg, ...);
346 void mrmailbox_log_error_if (
int* condition, mrmailbox_t*,
int code,
const char* msg, ...);
347 void mrmailbox_log_warning (mrmailbox_t*,
int code,
const char* msg, ...);
348 void mrmailbox_log_info (mrmailbox_t*,
int code,
const char* msg, ...);
349 void mrmailbox_log_vprintf (mrmailbox_t*,
int event,
int code,
const char* msg, va_list);
350 int mrmailbox_get_thread_index (
void);
354 #define MR_ERR_SELF_NOT_IN_GROUP 1 355 #define MR_ERR_NONETWORK 2 359 int mrchat_set_draft (
mrchat_t*,
const char* msg);
360 #define mrpoortext_t mrlot_t 361 #define mrpoortext_unref mrlot_unref 362 #define mrmailbox_imex_cancel mrmailbox_stop_ongoing_process 363 #define mrmailbox_configure_cancel mrmailbox_stop_ongoing_process 367 uint32_t mrmailbox_send_msg_object (mrmailbox_t*, uint32_t chat_id,
mrmsg_t*);
368 void mrmailbox_connect_to_imap (mrmailbox_t*, mrjob_t*);
369 void mrmailbox_wake_lock (mrmailbox_t*);
370 void mrmailbox_wake_unlock (mrmailbox_t*);
371 int mrmailbox_poke_eml_file (mrmailbox_t*,
const char* file);
372 int mrmailbox_is_reply_to_known_message__ (mrmailbox_t*, mrmimeparser_t*);
373 int mrmailbox_is_reply_to_messenger_message__ (mrmailbox_t*, mrmimeparser_t*);
374 time_t mrmailbox_correct_bad_timestamp__ (mrmailbox_t* ths, uint32_t chat_id, uint32_t from_id, time_t desired_timestamp,
int is_fresh_msg);
375 void mrmailbox_add_or_lookup_contacts_by_mailbox_list__(mrmailbox_t* ths,
struct mailimf_mailbox_list* mb_list,
int origin,
mrarray_t* ids,
int* check_self);
376 void mrmailbox_add_or_lookup_contacts_by_address_list__(mrmailbox_t* ths,
struct mailimf_address_list* adr_list,
int origin,
mrarray_t* ids,
int* check_self);
377 int mrmailbox_get_archived_count__ (mrmailbox_t*);
378 int mrmailbox_reset_tables (mrmailbox_t*,
int bits);
379 size_t mrmailbox_get_real_contact_cnt__ (mrmailbox_t*);
380 uint32_t mrmailbox_add_or_lookup_contact__ (mrmailbox_t*,
const char* display_name ,
const char* addr_spec,
int origin,
int* sth_modified);
381 int mrmailbox_get_contact_origin__ (mrmailbox_t*, uint32_t
id,
int* ret_blocked);
382 int mrmailbox_is_contact_blocked__ (mrmailbox_t*, uint32_t
id);
383 int mrmailbox_real_contact_exists__ (mrmailbox_t*, uint32_t
id);
384 int mrmailbox_contact_addr_equals__ (mrmailbox_t*, uint32_t contact_id,
const char* other_addr);
385 void mrmailbox_scaleup_contact_origin__ (mrmailbox_t*, uint32_t contact_id,
int origin);
386 void mrmailbox_unarchive_chat__ (mrmailbox_t*, uint32_t chat_id);
387 size_t mrmailbox_get_chat_cnt__ (mrmailbox_t*);
388 uint32_t mrmailbox_create_or_lookup_nchat_by_contact_id__ (mrmailbox_t*, uint32_t contact_id);
389 uint32_t mrmailbox_lookup_real_nchat_by_contact_id__ (mrmailbox_t*, uint32_t contact_id);
390 int mrmailbox_get_total_msg_count__ (mrmailbox_t*, uint32_t chat_id);
391 int mrmailbox_get_fresh_msg_count__ (mrmailbox_t*, uint32_t chat_id);
392 uint32_t mrmailbox_get_last_deaddrop_fresh_msg__ (mrmailbox_t*);
393 void mrmailbox_send_msg_to_smtp (mrmailbox_t*, mrjob_t*);
394 void mrmailbox_send_msg_to_imap (mrmailbox_t*, mrjob_t*);
395 int mrmailbox_add_contact_to_chat__ (mrmailbox_t*, uint32_t chat_id, uint32_t contact_id);
396 int mrmailbox_is_contact_in_chat__ (mrmailbox_t*, uint32_t chat_id, uint32_t contact_id);
397 int mrmailbox_get_chat_contact_count__ (mrmailbox_t*, uint32_t chat_id);
398 int mrmailbox_group_explicitly_left__ (mrmailbox_t*,
const char* grpid);
399 void mrmailbox_set_group_explicitly_left__ (mrmailbox_t*,
const char* grpid);
400 size_t mrmailbox_get_real_msg_cnt__ (mrmailbox_t*);
401 size_t mrmailbox_get_deaddrop_msg_cnt__ (mrmailbox_t*);
402 int mrmailbox_rfc724_mid_cnt__ (mrmailbox_t*,
const char* rfc724_mid);
403 int mrmailbox_rfc724_mid_exists__ (mrmailbox_t*,
const char* rfc724_mid,
char** ret_server_folder, uint32_t* ret_server_uid);
404 void mrmailbox_update_server_uid__ (mrmailbox_t*,
const char* rfc724_mid,
const char* server_folder, uint32_t server_uid);
405 void mrmailbox_update_msg_chat_id__ (mrmailbox_t*, uint32_t msg_id, uint32_t chat_id);
406 void mrmailbox_update_msg_state__ (mrmailbox_t*, uint32_t msg_id,
int state);
407 void mrmailbox_delete_msg_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
408 int mrmailbox_mdn_from_ext__ (mrmailbox_t*, uint32_t from_id,
const char* rfc724_mid, uint32_t* ret_chat_id, uint32_t* ret_msg_id);
409 void mrmailbox_send_mdn (mrmailbox_t*, mrjob_t* job);
410 void mrmailbox_markseen_msg_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
411 void mrmailbox_markseen_mdn_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
415 #define MR_E2EE_DEFAULT_ENABLED 1 416 #define MR_MDNS_DEFAULT_ENABLED 1 418 typedef struct mrmailbox_e2ee_helper_t {
419 int m_encryption_successfull;
420 void* m_cdata_to_free;
421 } mrmailbox_e2ee_helper_t;
423 void mrmailbox_e2ee_encrypt (mrmailbox_t*,
const clist* recipients_addr,
int e2ee_guaranteed,
int encrypt_to_self,
struct mailmime* in_out_message, mrmailbox_e2ee_helper_t*);
424 int mrmailbox_e2ee_decrypt (mrmailbox_t*,
struct mailmime* in_out_message,
int* ret_validation_errors);
425 void mrmailbox_e2ee_thanks (mrmailbox_e2ee_helper_t*);
426 int mrmailbox_ensure_secret_key_exists (mrmailbox_t*);
427 char* mrmailbox_create_setup_code (mrmailbox_t*);
428 int mrmailbox_render_setup_file (mrmailbox_t* mailbox,
const char* passphrase,
char** ret_msg);
430 extern int mr_shall_stop_ongoing;
431 int mrmailbox_alloc_ongoing (mrmailbox_t*);
432 void mrmailbox_free_ongoing (mrmailbox_t*);
int mrmailbox_add_address_book(mrmailbox_t *mailbox, const char *adr_book)
Add a number of contacts.
Definition: mrmailbox.c:4363
uint32_t mrmailbox_create_group_chat(mrmailbox_t *mailbox, const char *chat_name)
Create a new group chat.
Definition: mrmailbox.c:3645
uint32_t mrmailbox_create_contact(mrmailbox_t *mailbox, const char *name, const char *addr)
Add a single contact.
Definition: mrmailbox.c:4320
uint32_t mrmailbox_send_text_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *text_to_send)
Send a simple text message a given chat.
Definition: mrmailbox.c:3267
@@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
void mrmailbox_heartbeat(mrmailbox_t *ths)
Stay alive.
Definition: mrmailbox.c:1620
void mrmailbox_star_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt, int star)
Star/unstar messages by setting the last parameter to 0 (unstar) or 1(star).
Definition: mrmailbox.c:5323
int mrmailbox_set_config(mrmailbox_t *ths, const char *key, const char *value)
Configure the mailbox.
Definition: mrmailbox.c:1173
-
An object representing a single mailbox.
Definition: mrmailbox.h:189
+
An object representing a single mailbox.
Definition: mrmailbox.h:194
void mrmailbox_delete_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt)
Delete messages.
Definition: mrmailbox.c:5465
uint32_t mrmailbox_send_video_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int width, int height, int duration)
Send an video to a chat.
Definition: mrmailbox.c:3353
int mrmailbox_is_open(const mrmailbox_t *mailbox)
Check if the mailbox database is open.
Definition: mrmailbox.c:1106
@@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
void mrmailbox_unref(mrmailbox_t *mailbox)
Free a mailbox object.
Definition: mrmailbox.c:946
void mrmailbox_block_contact(mrmailbox_t *mailbox, uint32_t contact_id, int new_blocking)
Block or unblock a contact.
Definition: mrmailbox.c:4649
int mrmailbox_continue_key_transfer(mrmailbox_t *mailbox, uint32_t msg_id, const char *setup_code)
Continue the Autocrypt Key Transfer on another device.
Definition: mrmailbox_imex.c:574
-
uintptr_t(* mrmailboxcb_t)(mrmailbox_t *, int event, uintptr_t data1, uintptr_t data2)
Callback function that should be given to mrmailbox_new().
Definition: mrmailbox.h:179
+
uintptr_t(* mrmailboxcb_t)(mrmailbox_t *, int event, uintptr_t data1, uintptr_t data2)
Callback function that should be given to mrmailbox_new().
Definition: mrmailbox.h:184
int mrmailbox_configure_and_connect(mrmailbox_t *mailbox)
Configure and connect a mailbox.
Definition: mrmailbox_configure.c:393
mrchatlist_t * mrmailbox_get_chatlist(mrmailbox_t *mailbox, int listflags, const char *query)
Get a list of chats.
Definition: mrmailbox.c:1652
An object representing a single message in memory.
Definition: mrmsg.h:40
@@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
mrarray_t * mrmailbox_search_msgs(mrmailbox_t *mailbox, uint32_t chat_id, const char *query)
Search messages containing the given query string.
Definition: mrmailbox.c:2226
uint32_t mrmailbox_send_image_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int width, int height)
Send an image to a chat.
Definition: mrmailbox.c:3308
mrmsg_t * mrmailbox_get_msg(mrmailbox_t *mailbox, uint32_t msg_id)
Get a single message object of the type mrmsg_t.
Definition: mrmailbox.c:5066
-
void * m_userdata
Use data, may be used for any purpose.
Definition: mrmailbox.h:194
+
void * m_userdata
Use data, may be used for any purpose.
Definition: mrmailbox.h:199
int mrmailbox_is_configured(mrmailbox_t *mailbox)
Check if the mailbox is already configured.
Definition: mrmailbox_configure.c:705
int mrmailbox_set_chat_profile_image(mrmailbox_t *mailbox, uint32_t chat_id, const char *new_image)
Set group profile image.
Definition: mrmailbox.c:3794
uint32_t mrmailbox_create_chat_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id)
Create a normal chat with a single user.
Definition: mrmailbox.c:1815
diff --git a/docs/html/mrmimefactory_8h_source.html b/docs/html/mrmimefactory_8h_source.html
index 319eefc6..df0b22e0 100644
--- a/docs/html/mrmimefactory_8h_source.html
+++ b/docs/html/mrmimefactory_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
mrmimefactory.h