doveadm-settings.c revision 905780639d25a7d21b8a794f8735cadc34d20c2a
89a126810703c666309310d0f3189e9834d70b5bTimo Sirainen/* Copyright (c) 2010-2016 Dovecot authors, see the included COPYING file */
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenstatic bool doveadm_settings_check(void *_set, pool_t pool, const char **error_r);
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen/* <settings checks> */
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenstatic struct file_listener_settings doveadm_unix_listeners_array[] = {
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenstatic struct file_listener_settings *doveadm_unix_listeners[] = {
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen doveadm_unix_listeners, sizeof(doveadm_unix_listeners), { NULL, }
283ccfe110ed62e48f36e0d84e47da8cae5106beTimo Sirainen/* </settings checks> */
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainenstruct service_settings doveadm_service_settings = {
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen .unix_listeners = { { &doveadm_unix_listeners_buf,
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen { type, #name, offsetof(struct doveadm_settings, name), NULL }
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenstatic const struct setting_define doveadm_setting_defines[] = {
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen { SET_STRLIST, "plugin", offsetof(struct doveadm_settings, plugin_envs), NULL },
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenconst struct doveadm_settings doveadm_default_settings = {
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainen .dsync_remote_cmd = "ssh -l%{login} %{host} doveadm dsync-server -u%u -U",
36d2b3dc8766ef336a289a51075ca2f3236ef1efTimo Sirainenstatic const struct setting_parser_info *doveadm_setting_dependencies[] = {
1964dbea138cb4a213b1bce1eeee68992b18829aTimo Sirainenconst struct setting_parser_info doveadm_setting_parser_info = {
d6500661eb699ff335ac570c8646b6e067e1aac6Timo Sirainen .struct_size = sizeof(struct doveadm_settings),
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainenconst struct master_service_settings *service_set;
d6500661eb699ff335ac570c8646b6e067e1aac6Timo Sirainenfix_base_path(struct doveadm_settings *set, pool_t pool, const char **str)
d514e6e6ea2320c18c58e0ade9184f5aa67d491bTimo Sirainen if (*str != NULL && **str != '\0' && **str != '/')
d514e6e6ea2320c18c58e0ade9184f5aa67d491bTimo Sirainen *str = p_strconcat(pool, set->base_dir, "/", *str, NULL);
1964dbea138cb4a213b1bce1eeee68992b18829aTimo Sirainen/* <settings checks> */
2a4e8f370c566ffd360922227fc73d0ee36abee7Timo Sirainenstatic const struct dsync_feature_list dsync_feature_list[] = {
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen { "empty-header-workaround", DSYNC_FEATURE_EMPTY_HDR_WORKAROUND },
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainendsync_settings_parse_features(struct doveadm_settings *set,
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen const char **error_r)
6246b93fb37890dcb2f4df9896438f3f376ab284Timo Sirainen const char *const *str;
c8b29548f94160e0fe2f02e66d899d9e6cb495b3Timo Sirainen str = t_strsplit_spaces(set->dsync_features, " ,");
dcc76bb1e1bb287e3e71e6a39a7ca207fab0eaa8Timo Sirainenstatic bool doveadm_settings_check(void *_set, pool_t pool ATTR_UNUSED,
6246b93fb37890dcb2f4df9896438f3f376ab284Timo Sirainen const char **error_r)
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen fix_base_path(set, pool, &set->auth_socket_path);
9d7451b57769988f7e3e41cd8790e65429ffc5c7Timo Sirainen fix_base_path(set, pool, &set->doveadm_socket_path);
return FALSE;
return FALSE;
return TRUE;