1 #ifndef DOVEADM_SETTINGS_H 2 #define DOVEADM_SETTINGS_H 3 4 #include "net.h" 5 6 struct ssl_iostream_settings; 7 8 /* <settings checks> */ 9 enum dsync_features { 10 DSYNC_FEATURE_EMPTY_HDR_WORKAROUND = 0x1, 11 }; 12 /* </settings checks> */ 13 14 struct doveadm_settings { 15 const char *base_dir; 16 const char *libexec_dir; 17 const char *mail_plugins; 18 const char *mail_plugin_dir; 19 const char *mail_temp_dir; 20 bool auth_debug; 21 const char *auth_socket_path; 22 const char *doveadm_socket_path; 23 unsigned int doveadm_worker_count; 24 in_port_t doveadm_port; 25 const char *doveadm_ssl; 26 const char *doveadm_username; 27 const char *doveadm_password; 28 const char *doveadm_allowed_commands; 29 const char *dsync_alt_char; 30 const char *dsync_remote_cmd; 31 const char *director_username_hash; 32 const char *doveadm_api_key; 33 const char *dsync_features; 34 const char *dsync_hashed_headers; 35 unsigned int dsync_commit_msgs_interval; 36 const char *doveadm_http_rawlog_dir; 37 enum dsync_features parsed_features; 38 ARRAY(const char *) plugin_envs; 39 }; 40 41 struct doveadm_setting_root { 42 const struct setting_parser_info *info; 43 void *settings; 44 }; 45 ARRAY_DEFINE_TYPE(doveadm_setting_root, struct doveadm_setting_root); 46 47 extern const struct setting_parser_info doveadm_setting_parser_info; 48 extern struct doveadm_settings *doveadm_settings; 49 extern const struct master_service_settings *service_set; 50 extern const struct master_service_ssl_settings *doveadm_ssl_set; 51 extern ARRAY_TYPE(doveadm_setting_root) doveadm_setting_roots; 52 extern bool doveadm_verbose_proctitle; 53 54 void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool); 55 void doveadm_settings_expand(struct doveadm_settings *set, pool_t pool); 56 57 void doveadm_setting_roots_add(const struct setting_parser_info *info); 58 void *doveadm_setting_roots_get_settings(const struct setting_parser_info *info); 59 60 void doveadm_read_settings(void); 61 62 void doveadm_settings_init(void); 63 void doveadm_settings_deinit(void); 64 65 #endif 66