blob: 98c4e8e5e0b9a7c8fd0c13092e24dc28592e89ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#ifndef IMAPC_CLIENT_PRIVATE_H
#define IMAPC_CLIENT_PRIVATE_H
#include "imapc-client.h"
#define IMAPC_CLIENT_IDLE_SEND_DELAY_MSECS 100
struct imapc_client_connection {
struct imapc_connection *conn;
struct imapc_client *client;
struct imapc_client_mailbox *box;
};
struct imapc_client {
pool_t pool;
int refcount;
struct event *event;
struct imapc_client_settings set;
struct ssl_iostream_context *ssl_ctx;
imapc_untagged_callback_t *untagged_callback;
void *untagged_context;
imapc_state_change_callback_t *state_change_callback;
void *state_change_context;
imapc_command_callback_t *login_callback;
void *login_context;
ARRAY(struct imapc_client_connection *) conns;
bool logging_out;
struct ioloop *ioloop;
bool stop_on_state_finish;
};
struct imapc_client_mailbox {
struct imapc_client *client;
struct imapc_connection *conn;
struct imapc_msgmap *msgmap;
struct timeout *to_send_idle;
void (*reopen_callback)(void *context);
void *reopen_context;
void *untagged_box_context;
bool reconnect_ok;
bool reconnecting;
bool closing;
};
extern unsigned int imapc_client_cmd_tag_counter;
void imapc_client_ref(struct imapc_client *client);
void imapc_client_unref(struct imapc_client **client);
void imapc_command_set_mailbox(struct imapc_command *cmd,
struct imapc_client_mailbox *box);
void imapc_client_try_stop(struct imapc_client *client);
#endif
|