# HG changeset patch # User Timo Sirainen # Date 1256343017 14400 # Node ID d589d568a19d97d2eeaf363093b53f68d4a723b1 # Parent 9e0123366fc587c3ceca5fed4766d516755aa93d Changed all settings related structs to const and changed APIs to make it work. diff -r 9e0123366fc5 -r d589d568a19d src/auth/auth-settings.c --- a/src/auth/auth-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/auth/auth-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -8,8 +8,8 @@ #include -extern struct setting_parser_info auth_setting_parser_info; -extern struct setting_parser_info auth_root_setting_parser_info; +extern const struct setting_parser_info auth_setting_parser_info; +extern const struct setting_parser_info auth_root_setting_parser_info; static bool auth_settings_check(void *_set, pool_t pool, const char **error_r); @@ -17,7 +17,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct auth_passdb_settings, name), NULL } -static struct setting_define auth_passdb_setting_defines[] = { +static const struct setting_define auth_passdb_setting_defines[] = { DEF(SET_STR, driver), DEF(SET_STR, args), DEF(SET_BOOL, deny), @@ -25,7 +25,7 @@ SETTING_DEFINE_LIST_END }; -struct setting_parser_info auth_passdb_setting_parser_info = { +const struct setting_parser_info auth_passdb_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) auth_passdb_setting_defines, MEMBER(defaults) NULL, @@ -41,14 +41,14 @@ #define DEF(type, name) \ { type, #name, offsetof(struct auth_userdb_settings, name), NULL } -static struct setting_define auth_userdb_setting_defines[] = { +static const struct setting_define auth_userdb_setting_defines[] = { DEF(SET_STR, driver), DEF(SET_STR, args), SETTING_DEFINE_LIST_END }; -struct setting_parser_info auth_userdb_setting_parser_info = { +const struct setting_parser_info auth_userdb_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) auth_userdb_setting_defines, MEMBER(defaults) NULL, @@ -68,7 +68,7 @@ #define DEFLIST(field, name, defines) \ { SET_DEFLIST, name, offsetof(struct auth_settings, field), defines } -static struct setting_define auth_setting_defines[] = { +static const struct setting_define auth_setting_defines[] = { DEF(SET_STR, mechanisms), DEF(SET_STR, realms), DEF(SET_STR, default_realm), @@ -100,7 +100,7 @@ SETTING_DEFINE_LIST_END }; -static struct auth_settings auth_default_settings = { +static const struct auth_settings auth_default_settings = { MEMBER(mechanisms) "plain", MEMBER(realms) "", MEMBER(default_realm) "", @@ -130,7 +130,7 @@ MEMBER(userdbs) ARRAY_INIT }; -struct setting_parser_info auth_setting_parser_info = { +const struct setting_parser_info auth_setting_parser_info = { MEMBER(module_name) "auth", MEMBER(defines) auth_setting_defines, MEMBER(defaults) &auth_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/config/config-request.c --- a/src/config/config-request.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/config/config-request.c Fri Oct 23 20:10:17 2009 -0400 @@ -26,7 +26,7 @@ const struct setting_parser_info *info) { const struct setting_parser_info *p; - struct setting_parser_info *const *dep; + const struct setting_parser_info *const *dep; /* we're trying to find info or its parents from root's dependencies. */ diff -r 9e0123366fc5 -r d589d568a19d src/config/settings-get.pl --- a/src/config/settings-get.pl Fri Oct 23 19:11:19 2009 -0400 +++ b/src/config/settings-get.pl Fri Oct 23 20:10:17 2009 -0400 @@ -31,11 +31,11 @@ /struct setting_define.*{/ || /struct .*_default_settings = {/) { $state++; - } elsif (/^(static )?struct setting_parser_info (.*) = {/) { - $state++; + } elsif (/^(static )?const struct setting_parser_info (.*) = {/) { $cur_name = $2; - } elsif (/^extern struct setting_parser_info (.*);/) { - $externs .= "extern struct setting_parser_info $1;\n"; + $state++ if ($cur_name !~ /^\*default_/); + } elsif (/^extern const struct setting_parser_info (.*);/) { + $externs .= "extern const struct setting_parser_info $1;\n"; } elsif (/\/\* \*\//) { $state = 4; $code .= $_; @@ -62,7 +62,7 @@ my $value = $1; if ($value =~ /.*&(.*)\)/) { $parsers{$1} = 0; - $externs .= "extern struct setting_parser_info $1;\n"; + $externs .= "extern const struct setting_parser_info $1;\n"; } else { $state = 3; } diff -r 9e0123366fc5 -r d589d568a19d src/dict/dict-settings.c --- a/src/dict/dict-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/dict/dict-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -8,7 +8,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct dict_settings, name), NULL } -static struct setting_define dict_setting_defines[] = { +static const struct setting_define dict_setting_defines[] = { DEF(SET_STR, base_dir), DEF(SET_STR, dict_db_config), { SET_STRLIST, "dict", offsetof(struct dict_settings, dicts), NULL }, @@ -16,13 +16,13 @@ SETTING_DEFINE_LIST_END }; -struct dict_settings dict_default_settings = { +const struct dict_settings dict_default_settings = { MEMBER(base_dir) PKG_RUNDIR, MEMBER(dict_db_config) "", MEMBER(dicts) ARRAY_INIT }; -struct setting_parser_info dict_setting_parser_info = { +const struct setting_parser_info dict_setting_parser_info = { MEMBER(module_name) "dict", MEMBER(defines) dict_setting_defines, MEMBER(defaults) &dict_default_settings, @@ -33,4 +33,4 @@ MEMBER(parent_offset) (size_t)-1 }; -struct dict_settings *dict_settings; +const struct dict_settings *dict_settings; diff -r 9e0123366fc5 -r d589d568a19d src/dict/dict-settings.h --- a/src/dict/dict-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/dict/dict-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -7,7 +7,7 @@ ARRAY_DEFINE(dicts, const char *); }; -extern struct setting_parser_info dict_setting_parser_info; -extern struct dict_settings *dict_settings; +extern const struct setting_parser_info dict_setting_parser_info; +extern const struct dict_settings *dict_settings; #endif diff -r 9e0123366fc5 -r d589d568a19d src/imap-login/imap-login-settings.c --- a/src/imap-login/imap-login-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/imap-login/imap-login-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -11,22 +11,22 @@ #define DEF(type, name) \ { type, #name, offsetof(struct imap_login_settings, name), NULL } -static struct setting_define imap_login_setting_defines[] = { +static const struct setting_define imap_login_setting_defines[] = { DEF(SET_STR, imap_capability), SETTING_DEFINE_LIST_END }; -static struct imap_login_settings imap_login_default_settings = { +static const struct imap_login_settings imap_login_default_settings = { MEMBER(imap_capability) "" }; -static struct setting_parser_info *imap_login_setting_dependencies[] = { +static const struct setting_parser_info *imap_login_setting_dependencies[] = { &login_setting_parser_info, NULL }; -static struct setting_parser_info imap_login_setting_parser_info = { +static const struct setting_parser_info imap_login_setting_parser_info = { MEMBER(module_name) "imap-login", MEMBER(defines) imap_login_setting_defines, MEMBER(defaults) &imap_login_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/imap/imap-settings.c --- a/src/imap/imap-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/imap/imap-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -19,7 +19,7 @@ #define DEFLIST(field, name, defines) \ { SET_DEFLIST, name, offsetof(struct imap_settings, field), defines } -static struct setting_define imap_setting_defines[] = { +static const struct setting_define imap_setting_defines[] = { DEF(SET_BOOL, mail_debug), DEF(SET_UINT, imap_max_line_length), @@ -33,7 +33,7 @@ SETTING_DEFINE_LIST_END }; -static struct imap_settings imap_default_settings = { +static const struct imap_settings imap_default_settings = { MEMBER(mail_debug) FALSE, /* RFC-2683 recommends at least 8000 bytes. Some clients however don't @@ -48,12 +48,12 @@ MEMBER(imap_id_log) "" }; -static struct setting_parser_info *imap_setting_dependencies[] = { +static const struct setting_parser_info *imap_setting_dependencies[] = { &mail_user_setting_parser_info, NULL }; -struct setting_parser_info imap_setting_parser_info = { +const struct setting_parser_info imap_setting_parser_info = { MEMBER(module_name) "imap", MEMBER(defines) imap_setting_defines, MEMBER(defaults) &imap_default_settings, @@ -74,7 +74,7 @@ enum imap_client_workarounds num; }; -static struct imap_client_workaround_list imap_client_workaround_list[] = { +static const struct imap_client_workaround_list imap_client_workaround_list[] = { { "delay-newmail", WORKAROUND_DELAY_NEWMAIL }, { "outlook-idle", 0 }, /* only for backwards compatibility */ { "netscape-eoh", WORKAROUND_NETSCAPE_EOH }, @@ -87,7 +87,7 @@ const char **error_r) { enum imap_client_workarounds client_workarounds = 0; - struct imap_client_workaround_list *list; + const struct imap_client_workaround_list *list; const char *const *str; str = t_strsplit_spaces(set->imap_client_workarounds, " ,"); diff -r 9e0123366fc5 -r d589d568a19d src/imap/imap-settings.h --- a/src/imap/imap-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/imap/imap-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -26,6 +26,6 @@ enum imap_client_workarounds parsed_workarounds; }; -extern struct setting_parser_info imap_setting_parser_info; +extern const struct setting_parser_info imap_setting_parser_info; #endif diff -r 9e0123366fc5 -r d589d568a19d src/lib-dict/dict-sql-settings.c --- a/src/lib-dict/dict-sql-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-dict/dict-sql-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -29,7 +29,7 @@ #define DEF_STR(name) DEF_STRUCT_STR(name, dict_sql_map) -static struct setting_def dict_sql_map_setting_defs[] = { +static const struct setting_def dict_sql_map_setting_defs[] = { DEF_STR(pattern), DEF_STR(table), DEF_STR(username_field), diff -r 9e0123366fc5 -r d589d568a19d src/lib-lda/lda-settings.c --- a/src/lib-lda/lda-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-lda/lda-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -16,7 +16,7 @@ #define DEFLIST(field, name, defines) \ { SET_DEFLIST, name, offsetof(struct lda_settings, field), defines } -static struct setting_define lda_setting_defines[] = { +static const struct setting_define lda_setting_defines[] = { DEF(SET_STR, postmaster_address), DEF(SET_STR, hostname), DEF(SET_STR, sendmail_path), @@ -30,7 +30,7 @@ SETTING_DEFINE_LIST_END }; -static struct lda_settings lda_default_settings = { +static const struct lda_settings lda_default_settings = { MEMBER(postmaster_address) "", MEMBER(hostname) "", MEMBER(sendmail_path) "/usr/lib/sendmail", @@ -43,12 +43,12 @@ MEMBER(lda_mailbox_autosubscribe) FALSE }; -static struct setting_parser_info *lda_setting_dependencies[] = { +static const struct setting_parser_info *lda_setting_dependencies[] = { &mail_user_setting_parser_info, NULL }; -struct setting_parser_info lda_setting_parser_info = { +const struct setting_parser_info lda_setting_parser_info = { MEMBER(module_name) "lda", MEMBER(defines) lda_setting_defines, MEMBER(defaults) &lda_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lib-lda/lda-settings.h --- a/src/lib-lda/lda-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-lda/lda-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -15,6 +15,6 @@ bool lda_mailbox_autosubscribe; }; -extern struct setting_parser_info lda_setting_parser_info; +extern const struct setting_parser_info lda_setting_parser_info; #endif diff -r 9e0123366fc5 -r d589d568a19d src/lib-master/master-service-settings.c --- a/src/lib-master/master-service-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-master/master-service-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -24,7 +24,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct master_service_settings, name), NULL } -static struct setting_define master_service_setting_defines[] = { +static const struct setting_define master_service_setting_defines[] = { DEF(SET_STR, log_path), DEF(SET_STR, info_log_path), DEF(SET_STR, debug_log_path), @@ -36,7 +36,7 @@ SETTING_DEFINE_LIST_END }; -static struct master_service_settings master_service_default_settings = { +static const struct master_service_settings master_service_default_settings = { MEMBER(log_path) "", MEMBER(info_log_path) "", MEMBER(debug_log_path) "", @@ -46,7 +46,7 @@ MEMBER(shutdown_clients) TRUE }; -struct setting_parser_info master_service_setting_parser_info = { +const struct setting_parser_info master_service_setting_parser_info = { MEMBER(module_name) "master", MEMBER(defines) master_service_setting_defines, MEMBER(defaults) &master_service_default_settings, @@ -213,6 +213,7 @@ if (input->dyn_parsers != NULL) { settings_parser_info_update(service->set_pool, + input->dyn_parsers_parent, input->dyn_parsers); } diff -r 9e0123366fc5 -r d589d568a19d src/lib-master/master-service-settings.h --- a/src/lib-master/master-service-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-master/master-service-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -20,6 +20,7 @@ struct master_service_settings_input { const struct setting_parser_info **roots; const struct dynamic_settings_parser *dyn_parsers; + struct setting_parser_info *dyn_parsers_parent; const char *config_path; bool preserve_home; @@ -29,7 +30,7 @@ struct ip_addr local_ip, remote_ip; }; -extern struct setting_parser_info master_service_setting_parser_info; +extern const struct setting_parser_info master_service_setting_parser_info; int master_service_settings_read(struct master_service *service, const struct master_service_settings_input *input, diff -r 9e0123366fc5 -r d589d568a19d src/lib-settings/settings-parser.c --- a/src/lib-settings/settings-parser.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-settings/settings-parser.c Fri Oct 23 20:10:17 2009 -0400 @@ -1072,10 +1072,10 @@ } static void -info_update_real(pool_t pool, const struct dynamic_settings_parser *parsers) +info_update_real(pool_t pool, struct setting_parser_info *parent, + const struct dynamic_settings_parser *parsers) { /* @UNSAFE */ - struct setting_parser_info *parent; ARRAY_DEFINE(defines, struct setting_define); ARRAY_TYPE(dynamic_settings_parser) dynamic_parsers; struct dynamic_settings_parser new_parser; @@ -1085,8 +1085,6 @@ unsigned int i, j; size_t offset, new_struct_size; - parent = parsers[0].info->parent; - t_array_init(&defines, 128); /* add existing defines */ for (j = 0; parent->defines[j].key != NULL; j++) @@ -1147,10 +1145,11 @@ } void settings_parser_info_update(pool_t pool, + struct setting_parser_info *parent, const struct dynamic_settings_parser *parsers) { if (parsers[0].name != NULL) T_BEGIN { - info_update_real(pool, parsers); + info_update_real(pool, parent, parsers); } T_END; } diff -r 9e0123366fc5 -r d589d568a19d src/lib-settings/settings-parser.h --- a/src/lib-settings/settings-parser.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-settings/settings-parser.h Fri Oct 23 20:10:17 2009 -0400 @@ -61,10 +61,10 @@ size_t struct_size; size_t parent_offset; - struct setting_parser_info *parent; + const struct setting_parser_info *parent; bool (*check_func)(void *set, pool_t pool, const char **error_r); - struct setting_parser_info *const *dependencies; + const struct setting_parser_info *const *dependencies; struct dynamic_settings_parser *dynamic_parsers; }; @@ -168,6 +168,7 @@ dynamic_settings_list structures to their parent. All must have the same parent. The new structures are allocated from the given pool. */ void settings_parser_info_update(pool_t pool, + struct setting_parser_info *parent, const struct dynamic_settings_parser *parsers); /* Return pointer to beginning of settings for given name, or NULL if there is diff -r 9e0123366fc5 -r d589d568a19d src/lib-settings/settings.c --- a/src/lib-settings/settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-settings/settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -51,10 +51,10 @@ } const char * -parse_setting_from_defs(pool_t pool, struct setting_def *defs, void *base, +parse_setting_from_defs(pool_t pool, const struct setting_def *defs, void *base, const char *key, const char *value) { - struct setting_def *def; + const struct setting_def *def; for (def = defs; def->name != NULL; def++) { if (strcmp(def->name, key) == 0) { diff -r 9e0123366fc5 -r d589d568a19d src/lib-settings/settings.h --- a/src/lib-settings/settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-settings/settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -37,7 +37,7 @@ extern settings_section_callback_t *null_settings_section_callback; const char * -parse_setting_from_defs(pool_t pool, struct setting_def *defs, void *base, +parse_setting_from_defs(pool_t pool, const struct setting_def *defs, void *base, const char *key, const char *value); bool settings_read(const char *path, const char *section, diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/index/dbox-multi/mdbox-settings.c --- a/src/lib-storage/index/dbox-multi/mdbox-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/index/dbox-multi/mdbox-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -14,7 +14,7 @@ static bool mdbox_settings_verify(void *_set, pool_t pool ATTR_UNUSED, const char **error_r); -static struct setting_define mdbox_setting_defines[] = { +static const struct setting_define mdbox_setting_defines[] = { DEF(SET_UINT, mdbox_rotate_size), DEF(SET_UINT, mdbox_rotate_min_size), DEF(SET_UINT, mdbox_rotate_days), @@ -24,7 +24,7 @@ SETTING_DEFINE_LIST_END }; -static struct mdbox_settings mdbox_default_settings = { +static const struct mdbox_settings mdbox_default_settings = { MEMBER(mdbox_rotate_size) 2048*1024, MEMBER(mdbox_rotate_min_size) 16*1024, MEMBER(mdbox_rotate_days) 0, @@ -32,7 +32,7 @@ MEMBER(mdbox_purge_min_percentage) 0 }; -static struct setting_parser_info mdbox_setting_parser_info = { +static const struct setting_parser_info mdbox_setting_parser_info = { MEMBER(module_name) "mdbox", MEMBER(defines) mdbox_setting_defines, MEMBER(defaults) &mdbox_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/index/maildir/maildir-settings.c --- a/src/lib-storage/index/maildir/maildir-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/index/maildir/maildir-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -11,7 +11,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct maildir_settings, name), NULL } -static struct setting_define maildir_setting_defines[] = { +static const struct setting_define maildir_setting_defines[] = { DEF(SET_BOOL, maildir_stat_dirs), DEF(SET_BOOL, maildir_copy_with_hardlinks), DEF(SET_BOOL, maildir_copy_preserve_filename), @@ -20,14 +20,14 @@ SETTING_DEFINE_LIST_END }; -static struct maildir_settings maildir_default_settings = { +static const struct maildir_settings maildir_default_settings = { MEMBER(maildir_stat_dirs) FALSE, MEMBER(maildir_copy_with_hardlinks) TRUE, MEMBER(maildir_copy_preserve_filename) FALSE, MEMBER(maildir_very_dirty_syncs) FALSE }; -static struct setting_parser_info maildir_setting_parser_info = { +static const struct setting_parser_info maildir_setting_parser_info = { MEMBER(module_name) "maildir", MEMBER(defines) maildir_setting_defines, MEMBER(defaults) &maildir_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/index/mbox/mbox-settings.c --- a/src/lib-storage/index/mbox/mbox-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/index/mbox/mbox-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -11,7 +11,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct mbox_settings, name), NULL } -static struct setting_define mbox_setting_defines[] = { +static const struct setting_define mbox_setting_defines[] = { DEF(SET_STR, mbox_read_locks), DEF(SET_STR, mbox_write_locks), DEF(SET_UINT, mbox_lock_timeout), @@ -24,7 +24,7 @@ SETTING_DEFINE_LIST_END }; -static struct mbox_settings mbox_default_settings = { +static const struct mbox_settings mbox_default_settings = { MEMBER(mbox_read_locks) "fcntl", MEMBER(mbox_write_locks) "dotlock fcntl", MEMBER(mbox_lock_timeout) 5*60, @@ -35,7 +35,7 @@ MEMBER(mbox_lazy_writes) TRUE }; -static struct setting_parser_info mbox_setting_parser_info = { +static const struct setting_parser_info mbox_setting_parser_info = { MEMBER(module_name) "mbox", MEMBER(defines) mbox_setting_defines, MEMBER(defaults) &mbox_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/mail-storage-service.c --- a/src/lib-storage/mail-storage-service.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/mail-storage-service.c Fri Oct 23 20:10:17 2009 -0400 @@ -525,7 +525,7 @@ } } -static void +static struct setting_parser_info * dyn_parsers_update_parent(pool_t pool, struct master_service_settings_input *input) { @@ -565,6 +565,7 @@ new_dyn_parsers[i].info = new_info; } input->dyn_parsers = new_dyn_parsers; + return new_parent; } int mail_storage_service_read_settings(struct mail_storage_service_ctx *ctx, @@ -584,7 +585,8 @@ use $HOME */ set_input.preserve_home = (ctx->flags & MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP) == 0; - dyn_parsers_update_parent(pool, &set_input); + set_input.dyn_parsers_parent = + dyn_parsers_update_parent(pool, &set_input); if (input != NULL) { set_input.module = input->module; diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/mail-storage-settings.c --- a/src/lib-storage/mail-storage-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/mail-storage-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -20,7 +20,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct mail_storage_settings, name), NULL } -static struct setting_define mail_storage_setting_defines[] = { +static const struct setting_define mail_storage_setting_defines[] = { DEF(SET_STR_VARS, mail_location), DEF(SET_STR, mail_cache_fields), DEF(SET_STR, mail_never_cache_fields), @@ -42,7 +42,7 @@ SETTING_DEFINE_LIST_END }; -struct mail_storage_settings mail_storage_default_settings = { +const struct mail_storage_settings mail_storage_default_settings = { MEMBER(mail_location) "", MEMBER(mail_cache_fields) "flags", MEMBER(mail_never_cache_fields) "imap.envelope", @@ -62,7 +62,7 @@ MEMBER(pop3_uidl_format) "%08Xu%08Xv" }; -struct setting_parser_info mail_storage_setting_parser_info = { +const struct setting_parser_info mail_storage_setting_parser_info = { MEMBER(module_name) "mail", MEMBER(defines) mail_storage_setting_defines, MEMBER(defaults) &mail_storage_default_settings, @@ -80,7 +80,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct mail_namespace_settings, name), NULL } -static struct setting_define mail_namespace_setting_defines[] = { +static const struct setting_define mail_namespace_setting_defines[] = { DEF(SET_ENUM, type), DEF(SET_STR, separator), DEF(SET_STR_VARS, prefix), @@ -95,7 +95,7 @@ SETTING_DEFINE_LIST_END }; -struct mail_namespace_settings mail_namespace_default_settings = { +const struct mail_namespace_settings mail_namespace_default_settings = { MEMBER(type) "private:shared:public", MEMBER(separator) "", MEMBER(prefix) "", @@ -108,7 +108,7 @@ MEMBER(subscriptions) TRUE }; -struct setting_parser_info mail_namespace_setting_parser_info = { +const struct setting_parser_info mail_namespace_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) mail_namespace_setting_defines, MEMBER(defaults) &mail_namespace_default_settings, @@ -130,7 +130,7 @@ { SET_DEFLIST_UNIQUE, name, \ offsetof(struct mail_user_settings, field), defines } -static struct setting_define mail_user_setting_defines[] = { +static const struct setting_define mail_user_setting_defines[] = { DEF(SET_STR, base_dir), DEF(SET_STR, auth_socket_path), @@ -158,7 +158,7 @@ SETTING_DEFINE_LIST_END }; -static struct mail_user_settings mail_user_default_settings = { +static const struct mail_user_settings mail_user_default_settings = { MEMBER(base_dir) PKG_RUNDIR, MEMBER(auth_socket_path) "auth-userdb", @@ -184,7 +184,7 @@ MEMBER(plugin_envs) ARRAY_INIT }; -struct setting_parser_info mail_user_setting_parser_info = { +const struct setting_parser_info mail_user_setting_parser_info = { MEMBER(module_name) "mail", MEMBER(defines) mail_user_setting_defines, MEMBER(defaults) &mail_user_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lib-storage/mail-storage-settings.h --- a/src/lib-storage/mail-storage-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lib-storage/mail-storage-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -69,10 +69,10 @@ ARRAY_DEFINE(plugin_envs, const char *); }; -extern struct setting_parser_info mail_user_setting_parser_info; -extern struct setting_parser_info mail_namespace_setting_parser_info; -extern struct setting_parser_info mail_storage_setting_parser_info; -extern struct mail_namespace_settings mail_namespace_default_settings; +extern const struct setting_parser_info mail_user_setting_parser_info; +extern const struct setting_parser_info mail_namespace_setting_parser_info; +extern const struct setting_parser_info mail_storage_setting_parser_info; +extern const struct mail_namespace_settings mail_namespace_default_settings; const void * mail_user_set_get_driver_settings(const struct setting_parser_info *info, diff -r 9e0123366fc5 -r d589d568a19d src/lmtp/lmtp-settings.c --- a/src/lmtp/lmtp-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lmtp/lmtp-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -13,22 +13,22 @@ #define DEF(type, name) \ { type, #name, offsetof(struct lmtp_settings, name), NULL } -static struct setting_define lmtp_setting_defines[] = { +static const struct setting_define lmtp_setting_defines[] = { DEF(SET_BOOL, lmtp_proxy), SETTING_DEFINE_LIST_END }; -static struct lmtp_settings lmtp_default_settings = { +static const struct lmtp_settings lmtp_default_settings = { MEMBER(lmtp_proxy) FALSE }; -static struct setting_parser_info *lmtp_setting_dependencies[] = { +static const struct setting_parser_info *lmtp_setting_dependencies[] = { &lda_setting_parser_info, NULL }; -struct setting_parser_info lmtp_setting_parser_info = { +const struct setting_parser_info lmtp_setting_parser_info = { MEMBER(module_name) "lmtp", MEMBER(defines) lmtp_setting_defines, MEMBER(defaults) &lmtp_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/lmtp/lmtp-settings.h --- a/src/lmtp/lmtp-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/lmtp/lmtp-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -5,6 +5,6 @@ bool lmtp_proxy; }; -extern struct setting_parser_info lmtp_setting_parser_info; +extern const struct setting_parser_info lmtp_setting_parser_info; #endif diff -r 9e0123366fc5 -r d589d568a19d src/login-common/login-settings.c --- a/src/login-common/login-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/login-common/login-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -16,7 +16,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct login_settings, name), NULL } -static struct setting_define login_setting_defines[] = { +static const struct setting_define login_setting_defines[] = { DEF(SET_STR, login_trusted_networks), DEF(SET_STR_VARS, login_greeting), DEF(SET_STR, login_log_format_elements), @@ -45,7 +45,7 @@ SETTING_DEFINE_LIST_END }; -static struct login_settings login_default_settings = { +static const struct login_settings login_default_settings = { MEMBER(login_trusted_networks) "", MEMBER(login_greeting) PACKAGE_NAME" ready.", MEMBER(login_log_format_elements) "user=<%u> method=%m rip=%r lip=%l %c", @@ -72,7 +72,7 @@ MEMBER(mail_max_userip_connections) 10 }; -struct setting_parser_info login_setting_parser_info = { +const struct setting_parser_info login_setting_parser_info = { MEMBER(module_name) "login", MEMBER(defines) login_setting_defines, MEMBER(defaults) &login_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/login-common/login-settings.h --- a/src/login-common/login-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/login-common/login-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -33,7 +33,7 @@ }; extern const struct setting_parser_info **login_set_roots; -extern struct setting_parser_info login_setting_parser_info; +extern const struct setting_parser_info login_setting_parser_info; struct login_settings * login_settings_read(struct master_service *service, pool_t pool, diff -r 9e0123366fc5 -r d589d568a19d src/master/master-settings.c --- a/src/master/master-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/master/master-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -20,13 +20,13 @@ static bool master_settings_verify(void *_set, pool_t pool, const char **error_r); -extern struct setting_parser_info service_setting_parser_info; +extern const struct setting_parser_info service_setting_parser_info; #undef DEF #define DEF(type, name) \ { type, #name, offsetof(struct file_listener_settings, name), NULL } -static struct setting_define file_listener_setting_defines[] = { +static const struct setting_define file_listener_setting_defines[] = { DEF(SET_STR, path), DEF(SET_UINT, mode), DEF(SET_STR, user), @@ -35,14 +35,14 @@ SETTING_DEFINE_LIST_END }; -static struct file_listener_settings file_listener_default_settings = { +static const struct file_listener_settings file_listener_default_settings = { MEMBER(path) "", MEMBER(mode) 0600, MEMBER(user) "", MEMBER(group) "", }; -static struct setting_parser_info file_listener_setting_parser_info = { +static const struct setting_parser_info file_listener_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) file_listener_setting_defines, MEMBER(defaults) &file_listener_default_settings, @@ -58,7 +58,7 @@ #define DEF(type, name) \ { type, #name, offsetof(struct inet_listener_settings, name), NULL } -static struct setting_define inet_listener_setting_defines[] = { +static const struct setting_define inet_listener_setting_defines[] = { DEF(SET_STR, address), DEF(SET_UINT, port), DEF(SET_BOOL, ssl), @@ -66,13 +66,13 @@ SETTING_DEFINE_LIST_END }; -static struct inet_listener_settings inet_listener_default_settings = { +static const struct inet_listener_settings inet_listener_default_settings = { MEMBER(address) "", MEMBER(port) 0, MEMBER(ssl) FALSE }; -static struct setting_parser_info inet_listener_setting_parser_info = { +static const struct setting_parser_info inet_listener_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) inet_listener_setting_defines, MEMBER(defaults) &inet_listener_default_settings, @@ -94,7 +94,7 @@ #define DEFLIST_UNIQUE(field, name, defines) \ { SET_DEFLIST_UNIQUE, name, offsetof(struct service_settings, field), defines } -static struct setting_define service_setting_defines[] = { +static const struct setting_define service_setting_defines[] = { DEF(SET_STR, name), DEF(SET_STR, protocol), DEF(SET_STR, type), @@ -123,7 +123,7 @@ SETTING_DEFINE_LIST_END }; -static struct service_settings service_default_settings = { +static const struct service_settings service_default_settings = { MEMBER(master_set) NULL, MEMBER(name) "", @@ -149,7 +149,7 @@ MEMBER(inet_listeners) ARRAY_INIT }; -struct setting_parser_info service_setting_parser_info = { +const struct setting_parser_info service_setting_parser_info = { MEMBER(module_name) NULL, MEMBER(defines) service_setting_defines, MEMBER(defaults) &service_default_settings, @@ -168,7 +168,7 @@ #define DEFLIST_UNIQUE(field, name, defines) \ { SET_DEFLIST_UNIQUE, name, offsetof(struct master_settings, field), defines } -static struct setting_define master_setting_defines[] = { +static const struct setting_define master_setting_defines[] = { DEF(SET_STR, base_dir), DEF(SET_STR, libexec_dir), DEF(SET_STR, protocols), @@ -193,7 +193,7 @@ SETTING_DEFINE_LIST_END }; -static struct master_settings master_default_settings = { +static const struct master_settings master_default_settings = { MEMBER(base_dir) PKG_RUNDIR, MEMBER(libexec_dir) PKG_LIBEXECDIR, MEMBER(protocols) "imap pop3 lmtp", @@ -216,7 +216,7 @@ MEMBER(services) ARRAY_INIT }; -struct setting_parser_info master_setting_parser_info = { +const struct setting_parser_info master_setting_parser_info = { MEMBER(module_name) "master", MEMBER(defines) master_setting_defines, MEMBER(defaults) &master_default_settings, diff -r 9e0123366fc5 -r d589d568a19d src/master/master-settings.h --- a/src/master/master-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/master/master-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -76,7 +76,7 @@ char **protocols_split; }; -extern struct setting_parser_info master_setting_parser_info; +extern const struct setting_parser_info master_setting_parser_info; bool master_settings_do_fixes(const struct master_settings *set); diff -r 9e0123366fc5 -r d589d568a19d src/pop3-login/pop3-login-settings.c --- a/src/pop3-login/pop3-login-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/pop3-login/pop3-login-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -7,16 +7,16 @@ #include -static struct setting_define pop3_login_setting_defines[] = { +static const struct setting_define pop3_login_setting_defines[] = { SETTING_DEFINE_LIST_END }; -static struct setting_parser_info *pop3_login_setting_dependencies[] = { +static const struct setting_parser_info *pop3_login_setting_dependencies[] = { &login_setting_parser_info, NULL }; -struct setting_parser_info pop3_login_setting_parser_info = { +const struct setting_parser_info pop3_login_setting_parser_info = { MEMBER(module_name) "pop3-login", MEMBER(defines) pop3_login_setting_defines, MEMBER(defaults) NULL, diff -r 9e0123366fc5 -r d589d568a19d src/pop3/pop3-settings.c --- a/src/pop3/pop3-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/pop3/pop3-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -19,7 +19,7 @@ #define DEFLIST(field, name, defines) \ { SET_DEFLIST, name, offsetof(struct pop3_settings, field), defines } -static struct setting_define pop3_setting_defines[] = { +static const struct setting_define pop3_setting_defines[] = { DEF(SET_BOOL, mail_debug), DEF(SET_BOOL, pop3_no_flag_updates), @@ -33,7 +33,7 @@ SETTING_DEFINE_LIST_END }; -static struct pop3_settings pop3_default_settings = { +static const struct pop3_settings pop3_default_settings = { MEMBER(mail_debug) FALSE, MEMBER(pop3_no_flag_updates) FALSE, @@ -45,12 +45,12 @@ MEMBER(pop3_logout_format) "top=%t/%p, retr=%r/%b, del=%d/%m, size=%s" }; -static struct setting_parser_info *pop3_setting_dependencies[] = { +static const struct setting_parser_info *pop3_setting_dependencies[] = { &mail_user_setting_parser_info, NULL }; -struct setting_parser_info pop3_setting_parser_info = { +const struct setting_parser_info pop3_setting_parser_info = { MEMBER(module_name) "pop3", MEMBER(defines) pop3_setting_defines, MEMBER(defaults) &pop3_default_settings, @@ -71,7 +71,7 @@ enum pop3_client_workarounds num; }; -static struct pop3_client_workaround_list pop3_client_workaround_list[] = { +static const struct pop3_client_workaround_list pop3_client_workaround_list[] = { { "outlook-no-nuls", WORKAROUND_OUTLOOK_NO_NULS }, { "oe-ns-eoh", WORKAROUND_OE_NS_EOH }, { NULL, 0 } @@ -82,7 +82,7 @@ const char **error_r) { enum pop3_client_workarounds client_workarounds = 0; - struct pop3_client_workaround_list *list; + const struct pop3_client_workaround_list *list; const char *const *str; str = t_strsplit_spaces(set->pop3_client_workarounds, " ,"); diff -r 9e0123366fc5 -r d589d568a19d src/pop3/pop3-settings.h --- a/src/pop3/pop3-settings.h Fri Oct 23 19:11:19 2009 -0400 +++ b/src/pop3/pop3-settings.h Fri Oct 23 20:10:17 2009 -0400 @@ -25,6 +25,6 @@ enum pop3_client_workarounds parsed_workarounds; }; -extern struct setting_parser_info pop3_setting_parser_info; +extern const struct setting_parser_info pop3_setting_parser_info; #endif diff -r 9e0123366fc5 -r d589d568a19d src/ssl-params/ssl-params-settings.c --- a/src/ssl-params/ssl-params-settings.c Fri Oct 23 19:11:19 2009 -0400 +++ b/src/ssl-params/ssl-params-settings.c Fri Oct 23 20:10:17 2009 -0400 @@ -13,17 +13,17 @@ #define DEF(type, name) \ { type, #name, offsetof(struct ssl_params_settings, name), NULL } -static struct setting_define ssl_params_setting_defines[] = { +static const struct setting_define ssl_params_setting_defines[] = { DEF(SET_UINT, ssl_parameters_regenerate), SETTING_DEFINE_LIST_END }; -static struct ssl_params_settings ssl_params_default_settings = { +static const struct ssl_params_settings ssl_params_default_settings = { MEMBER(ssl_parameters_regenerate) 24*7 }; -struct setting_parser_info ssl_params_setting_parser_info = { +const struct setting_parser_info ssl_params_setting_parser_info = { MEMBER(module_name) "ssl-params", MEMBER(defines) ssl_params_setting_defines, MEMBER(defaults) &ssl_params_default_settings,