static void decline_secret_chat_cb (gpointer _data, const gchar *code) { struct accept_secret_chat_data *data = _data; bl_do_encr_chat_delete (data->TLS, data->U); purple_blist_remove_buddy (p2tgl_buddy_find(data->TLS, data->U->id)); g_free (data); }
static int mark_read_encr_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { tgl_peer_t *P = q->extra; if (P && P->encr_chat.state != sc_deleted && error_code == 400) { if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { bl_do_encr_chat_delete(TLS, &P->encr_chat); } } return 0; }
static int encr_accept_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { tgl_peer_t *P = q->extra; if (P && P->encr_chat.state != sc_deleted && error_code == 400) { if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { bl_do_encr_chat_delete(TLS, &P->encr_chat); } } if (q->callback) { ((void (*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback) (TLS, q->callback_extra, 0, NULL); } return 0; }
static int msg_send_encr_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { struct tgl_message *M = q->extra; tgl_peer_t *P = tgl_peer_get (TLS, M->to_id); if (P && P->encr_chat.state != sc_deleted && error_code == 400) { if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { bl_do_encr_chat_delete (TLS, &P->encr_chat); } } if (q->callback) { ((void (*)(struct tgl_state *TLS, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, M); } if (M) { bl_do_message_delete (TLS, M); } return 0; }