1 #ifndef IMAP_SETTINGS_H
2 #define IMAP_SETTINGS_H
3 
4 #include "net.h"
5 
6 struct mail_user_settings;
7 
8 /* <settings checks> */
9 enum imap_client_workarounds {
10 	WORKAROUND_DELAY_NEWMAIL		= 0x01,
11 	WORKAROUND_TB_EXTRA_MAILBOX_SEP		= 0x08,
12 	WORKAROUND_TB_LSUB_FLAGS		= 0x10
13 };
14 
15 enum imap_client_fetch_failure {
16 	IMAP_CLIENT_FETCH_FAILURE_DISCONNECT_IMMEDIATELY,
17 	IMAP_CLIENT_FETCH_FAILURE_DISCONNECT_AFTER,
18 	IMAP_CLIENT_FETCH_FAILURE_NO_AFTER,
19 };
20 /* </settings checks> */
21 
22 struct imap_settings {
23 	bool verbose_proctitle;
24 	const char *rawlog_dir;
25 
26 	/* imap: */
27 	uoff_t imap_max_line_length;
28 	unsigned int imap_idle_notify_interval;
29 	const char *imap_capability;
30 	const char *imap_client_workarounds;
31 	const char *imap_logout_format;
32 	const char *imap_id_send;
33 	const char *imap_id_log;
34 	const char *imap_fetch_failure;
35 	bool imap_metadata;
36 	bool imap_literal_minus;
37 	unsigned int imap_hibernate_timeout;
38 
39 	/* imap urlauth: */
40 	const char *imap_urlauth_host;
41 	in_port_t imap_urlauth_port;
42 
43 	enum imap_client_workarounds parsed_workarounds;
44 	enum imap_client_fetch_failure parsed_fetch_failure;
45 };
46 
47 extern const struct setting_parser_info imap_setting_parser_info;
48 
49 #endif
50