blob: 5650d7fc65940d3d8b1d33d5fccda562de0803b2 (
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
|
#ifndef CLIENT_H
#define CLIENT_H
struct client {
struct client *prev, *next;
int fd;
struct io *io;
struct istream *input;
struct ostream *output;
struct timeout *to_pending;
pool_t cmd_pool;
struct client_export_cmd *cmd_export;
int (*cmd_more)(struct client *client);
/* command iterators. while non-NULL, they've increased the
struct's refcount so it won't be deleted during iteration */
unsigned int iter_count;
struct mail_command *mail_cmd_iter;
struct mail_session *mail_session_iter;
struct mail_user *mail_user_iter;
struct mail_domain *mail_domain_iter;
struct mail_ip *mail_ip_iter;
};
struct client *client_create(int fd);
void client_destroy(struct client **client);
bool client_is_busy(struct client *client);
void client_enable_io(struct client *client);
void clients_destroy_all(void);
#endif
|