Mercurial > dovecot > core-2.2
annotate src/lib-storage/index/imapc/imapc-settings.c @ 14457:16ed300484c9
imapc: Added guid-forced feature to use SHA1(message) as GUID.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 18 Apr 2012 18:09:14 +0300 |
parents | 6a8b78450202 |
children | 03f44d61d582 |
rev | line source |
---|---|
14133
ba770cba5598
Updated copyright notices to include year 2012.
Timo Sirainen <tss@iki.fi>
parents:
13916
diff
changeset
|
1 /* Copyright (c) 2011-2012 Dovecot authors, see the included COPYING file */ |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "settings-parser.h" |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 #include "mail-storage-settings.h" |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #include "imapc-settings.h" |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 #include <stddef.h> |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 #undef DEF |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 #define DEF(type, name) \ |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 { type, #name, offsetof(struct imapc_settings, name), NULL } |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 static bool imapc_settings_check(void *_set, pool_t pool, const char **error_r); |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 static const struct setting_define imapc_setting_defines[] = { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 DEF(SET_STR, imapc_host), |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 DEF(SET_UINT, imapc_port), |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 |
12627
e945bf4f1e59
imapc: Default imapc_user to %u.
Timo Sirainen <tss@iki.fi>
parents:
12625
diff
changeset
|
20 DEF(SET_STR_VARS, imapc_user), |
13916
b860d38f6b9e
imapc: Added imapc_master_user setting.
Timo Sirainen <tss@iki.fi>
parents:
13775
diff
changeset
|
21 DEF(SET_STR_VARS, imapc_master_user), |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 DEF(SET_STR, imapc_password), |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 DEF(SET_ENUM, imapc_ssl), |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 DEF(SET_STR, imapc_ssl_ca_dir), |
13635
63ac3b1c2950
imapc: Added imapc_ssl_verify setting.
Timo Sirainen <tss@iki.fi>
parents:
13535
diff
changeset
|
26 DEF(SET_BOOL, imapc_ssl_verify), |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 |
14403
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
28 DEF(SET_STR, imapc_features), |
13535
87662d9ceff8
imapc: Added imapc_rawlog_dir setting.
Timo Sirainen <tss@iki.fi>
parents:
12627
diff
changeset
|
29 DEF(SET_STR, imapc_rawlog_dir), |
13775
e8c6ff480a18
imapc: Pass ssl_crypto_device setting to lib-ssl-iostream.
Timo Sirainen <tss@iki.fi>
parents:
13635
diff
changeset
|
30 DEF(SET_STR, ssl_crypto_device), |
13535
87662d9ceff8
imapc: Added imapc_rawlog_dir setting.
Timo Sirainen <tss@iki.fi>
parents:
12627
diff
changeset
|
31 |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 SETTING_DEFINE_LIST_END |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 }; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 static const struct imapc_settings imapc_default_settings = { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 .imapc_host = "", |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 .imapc_port = 143, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 |
12627
e945bf4f1e59
imapc: Default imapc_user to %u.
Timo Sirainen <tss@iki.fi>
parents:
12625
diff
changeset
|
39 .imapc_user = "%u", |
13916
b860d38f6b9e
imapc: Added imapc_master_user setting.
Timo Sirainen <tss@iki.fi>
parents:
13775
diff
changeset
|
40 .imapc_master_user = "", |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 .imapc_password = "", |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 .imapc_ssl = "no:imaps:starttls", |
13535
87662d9ceff8
imapc: Added imapc_rawlog_dir setting.
Timo Sirainen <tss@iki.fi>
parents:
12627
diff
changeset
|
44 .imapc_ssl_ca_dir = "", |
13635
63ac3b1c2950
imapc: Added imapc_ssl_verify setting.
Timo Sirainen <tss@iki.fi>
parents:
13535
diff
changeset
|
45 .imapc_ssl_verify = TRUE, |
13535
87662d9ceff8
imapc: Added imapc_rawlog_dir setting.
Timo Sirainen <tss@iki.fi>
parents:
12627
diff
changeset
|
46 |
14403
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
47 .imapc_features = "", |
13775
e8c6ff480a18
imapc: Pass ssl_crypto_device setting to lib-ssl-iostream.
Timo Sirainen <tss@iki.fi>
parents:
13635
diff
changeset
|
48 .imapc_rawlog_dir = "", |
e8c6ff480a18
imapc: Pass ssl_crypto_device setting to lib-ssl-iostream.
Timo Sirainen <tss@iki.fi>
parents:
13635
diff
changeset
|
49 .ssl_crypto_device = "" |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 }; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
51 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
52 static const struct setting_parser_info imapc_setting_parser_info = { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
53 .module_name = "imapc", |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
54 .defines = imapc_setting_defines, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
55 .defaults = &imapc_default_settings, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 .type_offset = (size_t)-1, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 .struct_size = sizeof(struct imapc_settings), |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
59 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
60 .parent_offset = (size_t)-1, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
61 .parent = &mail_user_setting_parser_info, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
62 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
63 .check_func = imapc_settings_check |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
64 }; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
65 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 const struct setting_parser_info *imapc_get_setting_parser_info(void) |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
67 { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
68 return &imapc_setting_parser_info; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
69 } |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
70 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
71 /* <settings checks> */ |
14403
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
72 struct imapc_feature_list { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
73 const char *name; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
74 enum imapc_features num; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
75 }; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
76 |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
77 static const struct imapc_feature_list imapc_feature_list[] = { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
78 { "rfc822.size", IMAPC_FEATURE_RFC822_SIZE }, |
14457
16ed300484c9
imapc: Added guid-forced feature to use SHA1(message) as GUID.
Timo Sirainen <tss@iki.fi>
parents:
14403
diff
changeset
|
79 { "guid-forced", IMAPC_FEATURE_GUID_FORCED }, |
14403
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
80 { NULL, 0 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
81 }; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
82 |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
83 static int |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
84 imapc_settings_parse_features(struct imapc_settings *set, |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
85 const char **error_r) |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
86 { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
87 enum imapc_features features = 0; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
88 const struct imapc_feature_list *list; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
89 const char *const *str; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
90 |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
91 str = t_strsplit_spaces(set->imapc_features, " ,"); |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
92 for (; *str != NULL; str++) { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
93 list = imapc_feature_list; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
94 for (; list->name != NULL; list++) { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
95 if (strcasecmp(*str, list->name) == 0) { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
96 features |= list->num; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
97 break; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
98 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
99 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
100 if (list->name == NULL) { |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
101 *error_r = t_strdup_printf("imapc_features: " |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
102 "Unknown feature: %s", *str); |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
103 return -1; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
104 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
105 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
106 set->parsed_features = features; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
107 return 0; |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
108 } |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
109 |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
110 static bool imapc_settings_check(void *_set, pool_t pool ATTR_UNUSED, |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
111 const char **error_r) |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
113 struct imapc_settings *set = _set; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 if (set->imapc_port == 0 || set->imapc_port > 65535) { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
116 *error_r = "invalid imapc_port"; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
117 return FALSE; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
118 } |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
119 #ifndef CONFIG_BINARY |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
120 if (*set->imapc_ssl_ca_dir != '\0' && |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
121 access(set->imapc_ssl_ca_dir, X_OK) < 0) { |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
122 *error_r = t_strdup_printf( |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
123 "imapc_ssl_ca_dir: access(%s) failed: %m", |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
124 set->imapc_ssl_ca_dir); |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
125 return FALSE; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
126 } |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
127 #endif |
14403
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
128 if (imapc_settings_parse_features(set, error_r) < 0) |
6a8b78450202
imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes.
Timo Sirainen <tss@iki.fi>
parents:
14133
diff
changeset
|
129 return FALSE; |
12625
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
130 return TRUE; |
495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
131 } |