23 #ifndef __MRAPEERSTATE_H__ 24 #define __MRAPEERSTATE_H__ 33 typedef struct mraheader_t mraheader_t;
36 #define MRA_PE_NOPREFERENCE 0 37 #define MRA_PE_MUTUAL 1 38 #define MRA_PE_RESET 20 44 typedef struct mrapeerstate_t
50 time_t m_last_seen_autocrypt;
51 mrkey_t* m_public_key;
54 time_t m_gossip_timestamp;
55 mrkey_t* m_gossip_key;
57 #define MRA_SAVE_TIMESTAMPS 0x01 58 #define MRA_SAVE_ALL 0x02 63 mrapeerstate_t* mrapeerstate_new ();
64 void mrapeerstate_unref (mrapeerstate_t*);
66 int mrapeerstate_init_from_header (mrapeerstate_t*,
const mraheader_t*, time_t message_time);
67 int mrapeerstate_init_from_gossip (mrapeerstate_t*,
const mraheader_t*, time_t message_time);
69 int mrapeerstate_degrade_encryption(mrapeerstate_t*, time_t message_time);
71 void mrapeerstate_apply_header (mrapeerstate_t*,
const mraheader_t*, time_t message_time);
72 void mrapeerstate_apply_gossip (mrapeerstate_t*,
const mraheader_t*, time_t message_time);
74 char* mrapeerstate_render_gossip_header(mrapeerstate_t*);
76 mrkey_t* mrapeerstate_peek_key (mrapeerstate_t*);
78 int mrapeerstate_load_from_db__ (mrapeerstate_t*, mrsqlite3_t*,
const char* addr);
79 int mrapeerstate_save_to_db__ (
const mrapeerstate_t*, mrsqlite3_t*,
int create);