mail-storage-settings.c revision 8855d5f5d9962d8431c12974b9c4968844223c2b
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainen/* Copyright (c) 2005-2018 Dovecot authors, see the included COPYING file */
4ee00532a265bdfb38539d811fcd12d51210ac35Timo Sirainenstatic bool mail_storage_settings_check(void *_set, pool_t pool, const char **error_r);
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenstatic bool mail_storage_settings_expand_check(void *_set, pool_t pool ATTR_UNUSED, const char **error_r);
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenstatic bool namespace_settings_check(void *_set, pool_t pool, const char **error_r);
dac0b2e5e0f38c6d95ef1a842d891480db580236Timo Sirainenstatic bool mailbox_settings_check(void *_set, pool_t pool, const char **error_r);
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenstatic bool mail_user_settings_check(void *_set, pool_t pool, const char **error_r);
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen { type, #name, offsetof(struct mail_storage_settings, name), NULL }
dac0b2e5e0f38c6d95ef1a842d891480db580236Timo Sirainenstatic const struct setting_define mail_storage_setting_defines[] = {
717a444a466280a84a468220f647fdcb9f3b546fTimo Sirainen DEF(SET_STR, mail_attachment_detection_options),
797de45dcf6e24642ab347d5033beb92034b779dTimo Sirainen DEF(SET_TIME, mail_cache_unaccessed_field_drop),
720692523ece4a549f7c589508d5693ee310f6b3Timo Sirainen DEF(SET_UINT, mail_cache_compress_delete_percentage),
4b8459c6c24b79d4ed5974ab6e3289a3f2b701c0Timo Sirainen DEF(SET_UINT, mail_cache_compress_continued_percentage),
720692523ece4a549f7c589508d5693ee310f6b3Timo Sirainen DEF(SET_UINT, mail_cache_compress_header_continue_count),
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen DEF(SET_SIZE, mail_index_rewrite_min_log_bytes),
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen DEF(SET_SIZE, mail_index_rewrite_max_log_bytes),
08f24237ccc177f5b3a09b24d8a725fa47e1ee32Timo Sirainen DEF(SET_SIZE, mail_index_log_rotate_min_size),
08f24237ccc177f5b3a09b24d8a725fa47e1ee32Timo Sirainen DEF(SET_SIZE, mail_index_log_rotate_max_size),
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen DEF(SET_BOOL, mailbox_list_index_very_dirty_syncs),
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen DEF(SET_BOOL, mailbox_list_index_include_inbox),
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenconst struct mail_storage_settings mail_storage_default_settings = {
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen .mail_cache_unaccessed_field_drop = 60*60*24*30,
4d4cd9cde9e01d4ad9354e6e30ac2f90d13042b2Timo Sirainen .mail_cache_compress_continued_percentage = 200,
4d4cd9cde9e01d4ad9354e6e30ac2f90d13042b2Timo Sirainen .mail_cache_compress_header_continue_count = 4,
debb28d107fa06d26fd194fdac523cfb32809199Timo Sirainen .mail_index_rewrite_max_log_bytes = 128 * 1024,
debb28d107fa06d26fd194fdac523cfb32809199Timo Sirainen .mail_index_log_rotate_max_size = 1024 * 1024,
debb28d107fa06d26fd194fdac523cfb32809199Timo Sirainenconst struct setting_parser_info mail_storage_setting_parser_info = {
f05b9dd37f830576ca7d32ec7071bf87906df3d2Timo Sirainen .struct_size = sizeof(struct mail_storage_settings),
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen .expand_check_func = mail_storage_settings_expand_check,
dba5754de32284b3149ddd5c9bb1701b05707752Timo Sirainen { type, #name, offsetof(struct mailbox_settings, name), NULL }
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenstatic const struct setting_define mailbox_setting_defines[] = {
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen { SET_ENUM, "auto", offsetof(struct mailbox_settings, autocreate), NULL } ,
dba5754de32284b3149ddd5c9bb1701b05707752Timo Sirainenconst struct mailbox_settings mailbox_default_settings = {
eff0f02f2c8320c1bd4df72a281a92051d78b2b1Timo Sirainenconst struct setting_parser_info mailbox_setting_parser_info = {
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen .type_offset = offsetof(struct mailbox_settings, name),
dba5754de32284b3149ddd5c9bb1701b05707752Timo Sirainen .struct_size = sizeof(struct mailbox_settings),
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen { type, #name, offsetof(struct mail_namespace_settings, name), NULL }
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainen offsetof(struct mail_namespace_settings, field), defines }
c014f12e8268bf37ca2997e632ad7c22b8d04a84Timo Sirainenstatic const struct setting_define mail_namespace_setting_defines[] = {
.order = 0,
.last_valid_uid = 0,
.last_valid_gid = 0,
const char *driver)
const void *dset;
driver);
return dset;
const struct mail_storage_settings *
const struct dynamic_settings_parser *
unsigned int i, j, count;
return parsers;
const char **error_r)
const char *p, *error;
bool uidl_format_ok;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
c = var_get_key(++p);
return FALSE;
if (!uidl_format_ok) {
return FALSE;
return FALSE;
return FALSE;
return FALSE;
#ifndef CONFIG_BINARY
return FALSE;
#ifndef CONFIG_BINARY
return FALSE;
const char *const *options =
options++;
return TRUE;
#ifndef CONFIG_BINARY
const char **error_r)
(const unsigned char *)address,
return FALSE;
return FALSE;
return TRUE;
const char *error;
&error);
return TRUE;
const char **error_r)
const char *name;
unsigned int i, count;
name);
return FALSE;
name);
return FALSE;
&count);
count = 0;
for (i = 0; i < count; i++) {
if (i == count) {
return FALSE;
return FALSE;
return TRUE;
return FALSE;
name++;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return TRUE;
return FALSE;
const char **error_r)
return FALSE;
return TRUE;
const char **error_r)
return FALSE;
return FALSE;
return TRUE;
#ifndef CONFIG_BINARY
return FALSE;
return TRUE;
const char **error_r)
return TRUE;
return FALSE;