23 #ifndef __MRMAILBOX_H__ 24 #define __MRMAILBOX_H__ 30 #define MR_VERSION_MAJOR 0 31 #define MR_VERSION_MINOR 10 32 #define MR_VERSION_REVISION 0 146 #include <libetpan/libetpan.h> 148 #include "mrchatlist.h" 151 #include "mrcontact.h" 157 typedef struct mrimap_t mrimap_t;
158 typedef struct mrsmtp_t mrsmtp_t;
159 typedef struct mrsqlite3_t mrsqlite3_t;
160 typedef struct mrjob_t mrjob_t;
161 typedef struct mrmimeparser_t mrmimeparser_t;
189 typedef struct mrmailbox_t
201 pthread_t m_job_thread;
202 pthread_cond_t m_job_cond;
203 pthread_mutex_t m_job_condmutex;
211 uint32_t m_cmdline_sel_chat_id;
214 pthread_mutex_t m_wake_lock_critical;
218 #define MR_LOG_RINGBUF_SIZE 200 219 pthread_mutex_t m_log_ringbuf_critical;
220 char* m_log_ringbuf[MR_LOG_RINGBUF_SIZE];
222 time_t m_log_ringbuf_times[MR_LOG_RINGBUF_SIZE];
224 int m_log_ringbuf_pos;
233 int mrmailbox_open (mrmailbox_t*,
const char* dbfile,
const char* blobdir);
254 #define MR_GCL_ARCHIVED_ONLY 0x01 255 #define MR_GCL_NO_SPECIALS 0x02 264 uint32_t
mrmailbox_send_image_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height);
265 uint32_t
mrmailbox_send_video_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int width,
int height,
int duration);
266 uint32_t
mrmailbox_send_voice_msg (mrmailbox_t*, uint32_t chat_id,
const char* file,
const char* filemime,
int duration);
267 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);
272 #define MR_GCM_ADDDAYMARKER 0x01 322 #define MR_IMEX_EXPORT_SELF_KEYS 1 323 #define MR_IMEX_IMPORT_SELF_KEYS 2 324 #define MR_IMEX_EXPORT_BACKUP 11 325 #define MR_IMEX_IMPORT_BACKUP 12 326 #define MR_BAK_PREFIX "delta-chat" 327 #define MR_BAK_SUFFIX "bak" 328 int mrmailbox_imex (mrmailbox_t*,
int what,
const char* param1,
const char* param2);
337 void mrmailbox_log_error (mrmailbox_t*,
int code,
const char* msg, ...);
338 void mrmailbox_log_error_if (
int* condition, mrmailbox_t*,
int code,
const char* msg, ...);
339 void mrmailbox_log_warning (mrmailbox_t*,
int code,
const char* msg, ...);
340 void mrmailbox_log_info (mrmailbox_t*,
int code,
const char* msg, ...);
341 void mrmailbox_log_vprintf (mrmailbox_t*,
int event,
int code,
const char* msg, va_list);
342 int mrmailbox_get_thread_index (
void);
346 #define MR_ERR_SELF_NOT_IN_GROUP 1 347 #define MR_ERR_NONETWORK 2 351 int mrchat_set_draft (
mrchat_t*,
const char* msg);
352 #define mrpoortext_t mrlot_t 353 #define mrpoortext_unref mrlot_unref 357 uint32_t mrmailbox_send_msg_object (mrmailbox_t*, uint32_t chat_id,
mrmsg_t*);
358 void mrmailbox_connect_to_imap (mrmailbox_t*, mrjob_t*);
359 void mrmailbox_wake_lock (mrmailbox_t*);
360 void mrmailbox_wake_unlock (mrmailbox_t*);
361 int mrmailbox_poke_eml_file (mrmailbox_t*,
const char* file);
362 int mrmailbox_is_reply_to_known_message__ (mrmailbox_t*, mrmimeparser_t*);
363 int mrmailbox_is_reply_to_messenger_message__ (mrmailbox_t*, mrmimeparser_t*);
364 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);
365 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);
366 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);
367 int mrmailbox_get_archived_count__ (mrmailbox_t*);
368 int mrmailbox_reset_tables (mrmailbox_t*,
int bits);
369 size_t mrmailbox_get_real_contact_cnt__ (mrmailbox_t*);
370 uint32_t mrmailbox_add_or_lookup_contact__ (mrmailbox_t*,
const char* display_name ,
const char* addr_spec,
int origin,
int* sth_modified);
371 int mrmailbox_get_contact_origin__ (mrmailbox_t*, uint32_t
id,
int* ret_blocked);
372 int mrmailbox_is_contact_blocked__ (mrmailbox_t*, uint32_t
id);
373 int mrmailbox_real_contact_exists__ (mrmailbox_t*, uint32_t
id);
374 int mrmailbox_contact_addr_equals__ (mrmailbox_t*, uint32_t contact_id,
const char* other_addr);
375 void mrmailbox_scaleup_contact_origin__ (mrmailbox_t*, uint32_t contact_id,
int origin);
376 void mrmailbox_unarchive_chat__ (mrmailbox_t*, uint32_t chat_id);
377 size_t mrmailbox_get_chat_cnt__ (mrmailbox_t*);
378 uint32_t mrmailbox_create_or_lookup_nchat_by_contact_id__ (mrmailbox_t*, uint32_t contact_id);
379 uint32_t mrmailbox_lookup_real_nchat_by_contact_id__ (mrmailbox_t*, uint32_t contact_id);
380 int mrmailbox_get_total_msg_count__ (mrmailbox_t*, uint32_t chat_id);
381 int mrmailbox_get_fresh_msg_count__ (mrmailbox_t*, uint32_t chat_id);
382 uint32_t mrmailbox_get_last_deaddrop_fresh_msg__ (mrmailbox_t*);
383 void mrmailbox_send_msg_to_smtp (mrmailbox_t*, mrjob_t*);
384 void mrmailbox_send_msg_to_imap (mrmailbox_t*, mrjob_t*);
385 int mrmailbox_add_contact_to_chat__ (mrmailbox_t*, uint32_t chat_id, uint32_t contact_id);
386 int mrmailbox_is_contact_in_chat__ (mrmailbox_t*, uint32_t chat_id, uint32_t contact_id);
387 int mrmailbox_get_chat_contact_count__ (mrmailbox_t*, uint32_t chat_id);
388 int mrmailbox_group_explicitly_left__ (mrmailbox_t*,
const char* grpid);
389 void mrmailbox_set_group_explicitly_left__ (mrmailbox_t*,
const char* grpid);
390 size_t mrmailbox_get_real_msg_cnt__ (mrmailbox_t*);
391 size_t mrmailbox_get_deaddrop_msg_cnt__ (mrmailbox_t*);
392 int mrmailbox_rfc724_mid_cnt__ (mrmailbox_t*,
const char* rfc724_mid);
393 int mrmailbox_rfc724_mid_exists__ (mrmailbox_t*,
const char* rfc724_mid,
char** ret_server_folder, uint32_t* ret_server_uid);
394 void mrmailbox_update_server_uid__ (mrmailbox_t*,
const char* rfc724_mid,
const char* server_folder, uint32_t server_uid);
395 void mrmailbox_update_msg_chat_id__ (mrmailbox_t*, uint32_t msg_id, uint32_t chat_id);
396 void mrmailbox_update_msg_state__ (mrmailbox_t*, uint32_t msg_id,
int state);
397 void mrmailbox_delete_msg_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
398 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);
399 void mrmailbox_send_mdn (mrmailbox_t*, mrjob_t* job);
400 void mrmailbox_markseen_msg_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
401 void mrmailbox_markseen_mdn_on_imap (mrmailbox_t* mailbox, mrjob_t* job);
405 #define MR_E2EE_DEFAULT_ENABLED 1 406 #define MR_MDNS_DEFAULT_ENABLED 1 408 typedef struct mrmailbox_e2ee_helper_t {
409 int m_encryption_successfull;
410 void* m_cdata_to_free;
411 } mrmailbox_e2ee_helper_t;
413 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*);
414 int mrmailbox_e2ee_decrypt (mrmailbox_t*,
struct mailmime* in_out_message,
int* ret_validation_errors);
415 void mrmailbox_e2ee_thanks (mrmailbox_e2ee_helper_t*);
416 int mrmailbox_ensure_secret_key_exists (mrmailbox_t*);
417 char* mrmailbox_create_setup_code (mrmailbox_t*);
418 int mrmailbox_render_setup_file (mrmailbox_t* mailbox,
const char* passphrase,
char** ret_msg);
int mrmailbox_add_address_book(mrmailbox_t *mailbox, const char *adr_book)
Add a number of contacts.
Definition: mrmailbox.c:4339
uint32_t mrmailbox_create_group_chat(mrmailbox_t *mailbox, const char *chat_name)
Create a new group chat.
Definition: mrmailbox.c:3627
uint32_t mrmailbox_create_contact(mrmailbox_t *mailbox, const char *name, const char *addr)
Add a single contact.
Definition: mrmailbox.c:4296
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:3249
void mrmailbox_close(mrmailbox_t *mailbox)
Close mailbox database.
Definition: mrmailbox.c:1083
+
char * mrmailbox_initiate_key_transfer(mrmailbox_t *mailbox)
Initiate Autocrypt key transfer.
Definition: mrmailbox_imex.c:1255
mrmailbox_t * mrmailbox_new(mrmailboxcb_t cb, void *userdata, const char *os_name)
Create a new mailbox object.
Definition: mrmailbox.c:900
int mrmailbox_is_contact_in_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Check if a given contact ID is a member of a group chat.
Definition: mrmailbox.c:3865
The following constants are used as events reported to the callback given to mrmailbox_new().
mrchat_t * mrmailbox_get_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Get chat object by a chat ID.
Definition: mrmailbox.c:1699
int mrmailbox_remove_contact_from_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id)
Remove a member from a group.
Definition: mrmailbox.c:3982
-
void mrmailbox_imex_cancel(mrmailbox_t *mailbox)
Signal the import-/export-process to stop.
Definition: mrmailbox_imex.c:970
+
void mrmailbox_imex_cancel(mrmailbox_t *mailbox)
Signal the import-/export-process to stop.
Definition: mrmailbox_imex.c:994
int mrmailbox_open(mrmailbox_t *mailbox, const char *dbfile, const char *blobdir)
Open mailbox database.
Definition: mrmailbox.c:1018
An object containing a simple array.
Definition: mrarray.h:39
@@ -136,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
int mrmailbox_get_fresh_msg_count(mrmailbox_t *mailbox, uint32_t chat_id)
Get the number of fresh messages in a chat.
Definition: mrmailbox.c:2609
void mrmailbox_delete_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Delete a chat.
Definition: mrmailbox.c:2770
void mrmailbox_set_draft(mrmailbox_t *mailbox, uint32_t chat_id, const char *msg)
Save a draft for a chat.
Definition: mrmailbox.c:2364
-
int mrmailbox_imex(mrmailbox_t *mailbox, int what, const char *param1, const char *param2)
Import/export things.
Definition: mrmailbox_imex.c:866
+
int mrmailbox_imex(mrmailbox_t *mailbox, int what, const char *param1, const char *param2)
Import/export things.
Definition: mrmailbox_imex.c:894
int mrmailbox_get_blocked_count(mrmailbox_t *mailbox)
Get the number of blocked contacts.
Definition: mrmailbox.c:4492
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:2215
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:3290
@@ -149,16 +150,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
void mrmailbox_markseen_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt)
Mark a message as seen, updates the IMAP state and sends MDNs.
Definition: mrmailbox.c:5555
mrarray_t * mrmailbox_get_chat_contacts(mrmailbox_t *mailbox, uint32_t chat_id)
Get contact IDs belonging to a chat.
Definition: mrmailbox.c:1994
void mrmailbox_marknoticed_chat(mrmailbox_t *mailbox, uint32_t chat_id)
Mark all message in a chat as noticed.
Definition: mrmailbox.c:1745
-
char * mrmailbox_imex_has_backup(mrmailbox_t *mailbox, const char *dir_name)
Check if there is a backup file.
Definition: mrmailbox_imex.c:1038
+
char * mrmailbox_imex_has_backup(mrmailbox_t *mailbox, const char *dir_name)
Check if there is a backup file.
Definition: mrmailbox_imex.c:1063
void mrmailbox_configure_cancel(mrmailbox_t *mailbox)
Signal the configure-process to stop.
Definition: mrmailbox_configure.c:720
mrarray_t * mrmailbox_get_fresh_msgs(mrmailbox_t *mailbox)
Returns the message IDs of all fresh messages of any chat.
Definition: mrmailbox.c:2043
mrcontact_t * mrmailbox_get_contact(mrmailbox_t *mailbox, uint32_t contact_id)
Get a single contact object.
Definition: mrmailbox.c:4534
-
int mrmailbox_check_password(mrmailbox_t *mailbox, const char *test_pw)
Check if the user is authorized by the given password in some way.
Definition: mrmailbox_imex.c:1105
+
int mrmailbox_check_password(mrmailbox_t *mailbox, const char *test_pw)
Check if the user is authorized by the given password in some way.
Definition: mrmailbox_imex.c:1129
void mrmailbox_marknoticed_contact(mrmailbox_t *mailbox, uint32_t contact_id)
Mark all messages send by the given contact as noticed.
Definition: mrmailbox.c:4582
int mrmailbox_set_config_int(mrmailbox_t *ths, const char *key, int32_t value)
Configure the mailbox.
Definition: mrmailbox.c:1237
int32_t mrmailbox_get_config_int(mrmailbox_t *ths, const char *key, int32_t def)
Get a configuration option.
Definition: mrmailbox.c:1259
int mrmailbox_set_chat_name(mrmailbox_t *mailbox, uint32_t chat_id, const char *new_name)
Set group name.
Definition: mrmailbox.c:3695
-
char * mrmailbox_create_setup_code(mrmailbox_t *mailbox)
Create random setup code.
Definition: mrmailbox_imex.c:1162
char * mrmailbox_get_contact_encrinfo(mrmailbox_t *mailbox, uint32_t contact_id)
Get encryption info for a contact.
Definition: mrmailbox.c:4699
mrarray_t * mrmailbox_get_chat_media(mrmailbox_t *mailbox, uint32_t chat_id, int msg_type, int or_msg_type)
Returns all message IDs of the given types in a chat.
Definition: mrmailbox.c:1886
uint32_t mrmailbox_send_audio_msg(mrmailbox_t *mailbox, uint32_t chat_id, const char *file, const char *filemime, int duration, const char *author, const char *trackname)
Send an audio file to a chat.
Definition: mrmailbox.c:3422
diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js
index 8d9ab62a..1ac05df0 100644
--- a/docs/html/search/all_1.js
+++ b/docs/html/search/all_1.js
@@ -68,7 +68,6 @@ var searchData=
['mrmailbox_5fcreate_5fchat_5fby_5fcontact_5fid',['mrmailbox_create_chat_by_contact_id',['../structmrmailbox__t.html#a1386ec2c091b936b65b25b50a302173d',1,'mrmailbox_t']]],
['mrmailbox_5fcreate_5fcontact',['mrmailbox_create_contact',['../structmrmailbox__t.html#aa089e97e7ca1add16c10d5cc0e902824',1,'mrmailbox_t']]],
['mrmailbox_5fcreate_5fgroup_5fchat',['mrmailbox_create_group_chat',['../structmrmailbox__t.html#a47156db87107ec208d6637f460d897a8',1,'mrmailbox_t']]],
- ['mrmailbox_5fcreate_5fsetup_5fcode',['mrmailbox_create_setup_code',['../structmrmailbox__t.html#af4d9c838230758e1b0e40957447232f7',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fchat',['mrmailbox_delete_chat',['../structmrmailbox__t.html#a24813f8aea38bcf5f928ea8a5fd7a3ec',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fcontact',['mrmailbox_delete_contact',['../structmrmailbox__t.html#a209732d105e40cd0c61d33d76d288c59',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fmsgs',['mrmailbox_delete_msgs',['../structmrmailbox__t.html#adf02bfc046577b46e1f0f5a31869890f',1,'mrmailbox_t']]],
@@ -99,6 +98,7 @@ var searchData=
['mrmailbox_5fimex',['mrmailbox_imex',['../structmrmailbox__t.html#a7db60273eae74ebbc74231f4c6d7204f',1,'mrmailbox_t']]],
['mrmailbox_5fimex_5fcancel',['mrmailbox_imex_cancel',['../structmrmailbox__t.html#a59c3c9ba62ffe2e7252dc4e49151f337',1,'mrmailbox_t']]],
['mrmailbox_5fimex_5fhas_5fbackup',['mrmailbox_imex_has_backup',['../structmrmailbox__t.html#abcb59b494a430c2d3d6e77cf433f5755',1,'mrmailbox_t']]],
+ ['mrmailbox_5finitiate_5fkey_5ftransfer',['mrmailbox_initiate_key_transfer',['../structmrmailbox__t.html#a8662e21a209936e2070f6a59479bfef4',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fconfigured',['mrmailbox_is_configured',['../structmrmailbox__t.html#aa6e325e49ecccfc96276db6c327dba94',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fcontact_5fin_5fchat',['mrmailbox_is_contact_in_chat',['../structmrmailbox__t.html#ae37988665a3d46f42a7e8199d18735c2',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fopen',['mrmailbox_is_open',['../structmrmailbox__t.html#aace7cd8b68f45b869956d5c7476a1da0',1,'mrmailbox_t']]],
diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js
index 09360620..ae0bd02b 100644
--- a/docs/html/search/functions_0.js
+++ b/docs/html/search/functions_0.js
@@ -35,7 +35,6 @@ var searchData=
['mrmailbox_5fcreate_5fchat_5fby_5fcontact_5fid',['mrmailbox_create_chat_by_contact_id',['../structmrmailbox__t.html#a1386ec2c091b936b65b25b50a302173d',1,'mrmailbox_t']]],
['mrmailbox_5fcreate_5fcontact',['mrmailbox_create_contact',['../structmrmailbox__t.html#aa089e97e7ca1add16c10d5cc0e902824',1,'mrmailbox_t']]],
['mrmailbox_5fcreate_5fgroup_5fchat',['mrmailbox_create_group_chat',['../structmrmailbox__t.html#a47156db87107ec208d6637f460d897a8',1,'mrmailbox_t']]],
- ['mrmailbox_5fcreate_5fsetup_5fcode',['mrmailbox_create_setup_code',['../structmrmailbox__t.html#af4d9c838230758e1b0e40957447232f7',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fchat',['mrmailbox_delete_chat',['../structmrmailbox__t.html#a24813f8aea38bcf5f928ea8a5fd7a3ec',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fcontact',['mrmailbox_delete_contact',['../structmrmailbox__t.html#a209732d105e40cd0c61d33d76d288c59',1,'mrmailbox_t']]],
['mrmailbox_5fdelete_5fmsgs',['mrmailbox_delete_msgs',['../structmrmailbox__t.html#adf02bfc046577b46e1f0f5a31869890f',1,'mrmailbox_t']]],
@@ -66,6 +65,7 @@ var searchData=
['mrmailbox_5fimex',['mrmailbox_imex',['../structmrmailbox__t.html#a7db60273eae74ebbc74231f4c6d7204f',1,'mrmailbox_t']]],
['mrmailbox_5fimex_5fcancel',['mrmailbox_imex_cancel',['../structmrmailbox__t.html#a59c3c9ba62ffe2e7252dc4e49151f337',1,'mrmailbox_t']]],
['mrmailbox_5fimex_5fhas_5fbackup',['mrmailbox_imex_has_backup',['../structmrmailbox__t.html#abcb59b494a430c2d3d6e77cf433f5755',1,'mrmailbox_t']]],
+ ['mrmailbox_5finitiate_5fkey_5ftransfer',['mrmailbox_initiate_key_transfer',['../structmrmailbox__t.html#a8662e21a209936e2070f6a59479bfef4',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fconfigured',['mrmailbox_is_configured',['../structmrmailbox__t.html#aa6e325e49ecccfc96276db6c327dba94',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fcontact_5fin_5fchat',['mrmailbox_is_contact_in_chat',['../structmrmailbox__t.html#ae37988665a3d46f42a7e8199d18735c2',1,'mrmailbox_t']]],
['mrmailbox_5fis_5fopen',['mrmailbox_is_open',['../structmrmailbox__t.html#aace7cd8b68f45b869956d5c7476a1da0',1,'mrmailbox_t']]],
diff --git a/docs/html/structmrmailbox__t-members.html b/docs/html/structmrmailbox__t-members.html
index 51b4b1d3..347aa4ae 100644
--- a/docs/html/structmrmailbox__t-members.html
+++ b/docs/html/structmrmailbox__t-members.html
@@ -101,37 +101,37 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
mrmailbox_create_chat_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
mrmailbox_create_contact(mrmailbox_t *mailbox, const char *name, const char *addr) | mrmailbox_t | |
mrmailbox_create_group_chat(mrmailbox_t *mailbox, const char *chat_name) | mrmailbox_t | |
-
mrmailbox_create_setup_code(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_delete_chat(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_delete_contact(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
-
mrmailbox_delete_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt) | mrmailbox_t | |
-
mrmailbox_disconnect(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_forward_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_get_blocked_contacts(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_get_blocked_count(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_get_chat(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_get_chat_contacts(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_get_chat_id_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
-
mrmailbox_get_chat_media(mrmailbox_t *mailbox, uint32_t chat_id, int msg_type, int or_msg_type) | mrmailbox_t | |
-
mrmailbox_get_chat_msgs(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t flags, uint32_t marker1before) | mrmailbox_t | |
-
mrmailbox_get_chatlist(mrmailbox_t *mailbox, int listflags, const char *query) | mrmailbox_t | |
-
mrmailbox_get_config(mrmailbox_t *ths, const char *key, const char *def) | mrmailbox_t | |
-
mrmailbox_get_config_int(mrmailbox_t *ths, const char *key, int32_t def) | mrmailbox_t | |
-
mrmailbox_get_contact(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
-
mrmailbox_get_contact_encrinfo(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
-
mrmailbox_get_fresh_msg_count(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_get_fresh_msgs(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_get_info(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_get_known_contacts(mrmailbox_t *mailbox, const char *query) | mrmailbox_t | |
-
mrmailbox_get_msg(mrmailbox_t *mailbox, uint32_t msg_id) | mrmailbox_t | |
-
mrmailbox_get_msg_info(mrmailbox_t *mailbox, uint32_t msg_id) | mrmailbox_t | |
-
mrmailbox_get_next_media(mrmailbox_t *mailbox, uint32_t curr_msg_id, int dir) | mrmailbox_t | |
-
mrmailbox_get_total_msg_count(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
-
mrmailbox_get_version_str(void) | mrmailbox_t | |
-
mrmailbox_heartbeat(mrmailbox_t *ths) | mrmailbox_t | |
-
mrmailbox_imex(mrmailbox_t *mailbox, int what, const char *param1, const char *param2) | mrmailbox_t | |
-
mrmailbox_imex_cancel(mrmailbox_t *mailbox) | mrmailbox_t | |
-
mrmailbox_imex_has_backup(mrmailbox_t *mailbox, const char *dir_name) | mrmailbox_t | |
+
mrmailbox_delete_chat(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_delete_contact(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
+
mrmailbox_delete_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt) | mrmailbox_t | |
+
mrmailbox_disconnect(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_forward_msgs(mrmailbox_t *mailbox, const uint32_t *msg_ids, int msg_cnt, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_get_blocked_contacts(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_get_blocked_count(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_get_chat(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_get_chat_contacts(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_get_chat_id_by_contact_id(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
+
mrmailbox_get_chat_media(mrmailbox_t *mailbox, uint32_t chat_id, int msg_type, int or_msg_type) | mrmailbox_t | |
+
mrmailbox_get_chat_msgs(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t flags, uint32_t marker1before) | mrmailbox_t | |
+
mrmailbox_get_chatlist(mrmailbox_t *mailbox, int listflags, const char *query) | mrmailbox_t | |
+
mrmailbox_get_config(mrmailbox_t *ths, const char *key, const char *def) | mrmailbox_t | |
+
mrmailbox_get_config_int(mrmailbox_t *ths, const char *key, int32_t def) | mrmailbox_t | |
+
mrmailbox_get_contact(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
+
mrmailbox_get_contact_encrinfo(mrmailbox_t *mailbox, uint32_t contact_id) | mrmailbox_t | |
+
mrmailbox_get_fresh_msg_count(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_get_fresh_msgs(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_get_info(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_get_known_contacts(mrmailbox_t *mailbox, const char *query) | mrmailbox_t | |
+
mrmailbox_get_msg(mrmailbox_t *mailbox, uint32_t msg_id) | mrmailbox_t | |
+
mrmailbox_get_msg_info(mrmailbox_t *mailbox, uint32_t msg_id) | mrmailbox_t | |
+
mrmailbox_get_next_media(mrmailbox_t *mailbox, uint32_t curr_msg_id, int dir) | mrmailbox_t | |
+
mrmailbox_get_total_msg_count(mrmailbox_t *mailbox, uint32_t chat_id) | mrmailbox_t | |
+
mrmailbox_get_version_str(void) | mrmailbox_t | |
+
mrmailbox_heartbeat(mrmailbox_t *ths) | mrmailbox_t | |
+
mrmailbox_imex(mrmailbox_t *mailbox, int what, const char *param1, const char *param2) | mrmailbox_t | |
+
mrmailbox_imex_cancel(mrmailbox_t *mailbox) | mrmailbox_t | |
+
mrmailbox_imex_has_backup(mrmailbox_t *mailbox, const char *dir_name) | mrmailbox_t | |
+
mrmailbox_initiate_key_transfer(mrmailbox_t *mailbox) | mrmailbox_t | |
mrmailbox_is_configured(mrmailbox_t *mailbox) | mrmailbox_t | |
mrmailbox_is_contact_in_chat(mrmailbox_t *mailbox, uint32_t chat_id, uint32_t contact_id) | mrmailbox_t | |
mrmailbox_is_open(const mrmailbox_t *mailbox) | mrmailbox_t | |
diff --git a/docs/html/structmrmailbox__t.html b/docs/html/structmrmailbox__t.html
index acf33536..edfa1ea8 100644
--- a/docs/html/structmrmailbox__t.html
+++ b/docs/html/structmrmailbox__t.html
@@ -302,9 +302,9 @@ Public Member Functions
int | mrmailbox_check_password (mrmailbox_t *mailbox, const char *test_pw) |
| Check if the user is authorized by the given password in some way. More...
|
|
-
char * | mrmailbox_create_setup_code (mrmailbox_t *mailbox) |
-
| Create random setup code. More...
|
-
|
+
char * | mrmailbox_initiate_key_transfer (mrmailbox_t *mailbox) |
+
| Initiate Autocrypt key transfer. More...
|
+
|
|
@@ -2968,7 +2968,8 @@ Public Attributes
- Returns
- String with the backup file, typically given to mrmailbox_imex(), returned strings must be free()'d. The function returns NULL if no backup was found.
-Example:
char dir[] = "/dir/to/search/backups/in";
void ask_user_for_credentials()
{
}
int ask_user_whether_to_import()
{
return 1;
}
{
char* file = NULL;
{
}
else
{
do {
ask_user_for_credentials();
}
}
free(file);
}
+Example:
+char dir[] = "/dir/to/search/backups/in";
void ask_user_for_credentials()
{
}
int ask_user_whether_to_import()
{
return 1;
}
{
char* file = NULL;
{
}
else
{
do {
ask_user_for_credentials();
}
}
free(file);
}
@@ -2999,7 +3000,7 @@ Public Attributes
This is to promt for the password eg. before exporting keys/backup.
- Parameters
-
@@ -3008,12 +3009,12 @@ Public Attributes
-
+
- char * mrmailbox_create_setup_code |
+ char * mrmailbox_initiate_key_transfer |
( |
mrmailbox_t * |
mailbox | ) |
@@ -3022,16 +3023,18 @@ Public Attributes
-
Create random setup code.
-
The created "Autocrypt Level 1" setup code has the following form:
-
1234-1234-1234-
1234-1234-1234-
1234-1234-1234
Linebreaks and spaces are not added to the setup code, but the "-" are. Should be given to mrmailbox_imex() for encryption, should be wiped and free()'d after usage.
+
Initiate Autocrypt key transfer.
+
Before starting the key transfer with this function, the user should be asked:
+
"The 'Autocrypt key transfer' requires that the mail client on the other device is Autocrypt-compliant.
We will then send the key to yourself. The key will be encrypted by a setup code which is displayed herer and must be typed on the other device."
After that, this function should be called to send the Autocrypt setup message. The required setup code is then returned by this function, does not contain linebreaks or spaces and has the follwing format:
+
1234-1234-1234-1234-1234-1234-1234-1234-1234
The setup code should be shown to the user then:
+
"The setup message has been sent to yourself.
Please switch to the other device now and open the setup message.
You should be promptet for a setup code.
Please type the following digits into the prompt:
1234-1234-1234-
1234-1234-1234-
1234-1234-1234
Once you're done, your other device will be ready to use Autocrypt."
For more details about the Autocrypt setup process, please refer to https://autocrypt.org/en/latest/level1.html#autocrypt-setup-message
- Parameters
-
- mailbox | Mailbox object as created by mrmailbox_new(). |
+ mailbox | The mailbox object. |
-
- Returns
- Setup code, must be free()'d after usage.
+
- Returns
- The setup code. Must be free()'d after usage. On errors, eg. if the message could not be sent, NULL is returned.