1005
1050
.parent = &mail_user_setting_parser_info
1007
1052
/* ../../src/lib-settings/settings.c */
1008
/* ../../src/lib-master/master-service-settings.c */
1009
/* <settings checks> */
1011
master_service_settings_check(void *_set, pool_t pool ATTR_UNUSED,
1012
const char **error_r ATTR_UNUSED)
1014
struct master_service_settings *set = _set;
1016
if (*set->log_path == '\0') {
1017
/* default to syslog logging */
1018
set->log_path = "syslog";
1022
/* </settings checks> */
1024
#define DEF(type, name) \
1025
{ type, #name, offsetof(struct master_service_settings, name), NULL }
1026
static const struct setting_define master_service_setting_defines[] = {
1027
DEF(SET_STR, log_path),
1028
DEF(SET_STR, info_log_path),
1029
DEF(SET_STR, debug_log_path),
1030
DEF(SET_STR, log_timestamp),
1031
DEF(SET_STR, syslog_facility),
1032
DEF(SET_SIZE, config_cache_size),
1033
DEF(SET_BOOL, version_ignore),
1034
DEF(SET_BOOL, shutdown_clients),
1035
DEF(SET_BOOL, verbose_proctitle),
1037
SETTING_DEFINE_LIST_END
1039
static const struct master_service_settings master_service_default_settings = {
1040
.log_path = "syslog",
1041
.info_log_path = "",
1042
.debug_log_path = "",
1043
.log_timestamp = DEFAULT_FAILURE_STAMP_FORMAT,
1044
.syslog_facility = "mail",
1045
.config_cache_size = 1024*1024,
1046
.version_ignore = FALSE,
1047
.shutdown_clients = TRUE,
1048
.verbose_proctitle = FALSE
1050
const struct setting_parser_info master_service_setting_parser_info = {
1051
.module_name = "master",
1052
.defines = master_service_setting_defines,
1053
.defaults = &master_service_default_settings,
1055
.type_offset = (size_t)-1,
1056
.struct_size = sizeof(struct master_service_settings),
1058
.parent_offset = (size_t)-1,
1059
.check_func = master_service_settings_check
1061
1053
/* ../../src/lib-lda/lda-settings.c */
2441
2484
/* ../../src/login-common/login-settings.c */
2442
2485
/* <settings checks> */
2443
static int ssl_settings_check(void *_set ATTR_UNUSED, const char **error_r)
2445
struct login_settings *set = _set;
2448
*error_r = t_strdup_printf("SSL support not compiled in but ssl=%s",
2452
if (*set->ssl_cert == '\0') {
2453
*error_r = "ssl enabled, but ssl_cert not set";
2456
if (*set->ssl_key == '\0') {
2457
*error_r = "ssl enabled, but ssl_key not set";
2460
if (set->ssl_verify_client_cert && *set->ssl_ca == '\0') {
2461
*error_r = "ssl_verify_client_cert set, but ssl_ca not";
2468
static bool login_settings_check(void *_set, pool_t pool, const char **error_r)
2486
static bool login_settings_check(void *_set, pool_t pool,
2487
const char **error_r ATTR_UNUSED)
2470
2489
struct login_settings *set = _set;
2472
2491
set->log_format_elements_split =
2473
2492
p_strsplit(pool, set->login_log_format_elements, " ");
2475
if (set->auth_ssl_require_client_cert ||
2476
set->auth_ssl_username_from_cert) {
2477
/* if we require valid cert, make sure we also ask for it */
2478
set->ssl_verify_client_cert = TRUE;
2481
2494
if (set->auth_debug_passwords)
2482
2495
set->auth_debug = TRUE;
2483
2496
if (set->auth_debug)
2484
2497
set->auth_verbose = TRUE;
2486
if (strcmp(set->ssl, "no") == 0) {
2488
} else if (strcmp(set->ssl, "yes") == 0) {
2489
if (!ssl_settings_check(set, error_r))
2491
} else if (strcmp(set->ssl, "required") == 0) {
2492
if (!ssl_settings_check(set, error_r))
2494
set->disable_plaintext_auth = TRUE;
2496
*error_r = t_strdup_printf("Unknown ssl setting value: %s",
2502
2500
/* </settings checks> */
2511
2509
DEF(SET_STR, login_access_sockets),
2512
2510
DEF(SET_STR, director_username_hash),
2515
DEF(SET_STR, ssl_ca),
2516
DEF(SET_STR, ssl_cert),
2517
DEF(SET_STR, ssl_key),
2518
DEF(SET_STR, ssl_key_password),
2519
DEF(SET_STR, ssl_cipher_list),
2520
DEF(SET_STR, ssl_protocols),
2521
DEF(SET_STR, ssl_cert_username_field),
2522
2512
DEF(SET_STR, ssl_client_cert),
2523
2513
DEF(SET_STR, ssl_client_key),
2524
DEF(SET_STR, ssl_crypto_device),
2525
DEF(SET_BOOL, ssl_verify_client_cert),
2526
2514
DEF(SET_BOOL, ssl_require_crl),
2527
2515
DEF(SET_BOOL, auth_ssl_require_client_cert),
2528
2516
DEF(SET_BOOL, auth_ssl_username_from_cert),
2529
DEF(SET_BOOL, verbose_ssl),
2531
2518
DEF(SET_BOOL, disable_plaintext_auth),
2532
2519
DEF(SET_BOOL, auth_verbose),
2941
2931
.check_func = imap_settings_verify,
2942
2932
.dependencies = imap_setting_dependencies
2934
/* ../../src/imap-urlauth/imap-urlauth-worker-settings.c */
2935
/* <settings checks> */
2936
static struct file_listener_settings imap_urlauth_worker_unix_listeners_array[] = {
2937
{ "imap-urlauth-worker", 0600, "$default_internal_user", "" }
2939
static struct file_listener_settings *imap_urlauth_worker_unix_listeners[] = {
2940
&imap_urlauth_worker_unix_listeners_array[0]
2942
static buffer_t imap_urlauth_worker_unix_listeners_buf = {
2943
imap_urlauth_worker_unix_listeners, sizeof(imap_urlauth_worker_unix_listeners), { 0, }
2945
/* </settings checks> */
2946
struct service_settings imap_urlauth_worker_service_settings = {
2947
.name = "imap-urlauth-worker",
2950
.executable = "imap-urlauth-worker",
2953
.privileged_group = "",
2957
.drop_priv_before_exec = FALSE,
2959
.process_min_avail = 0,
2960
.process_limit = 1024,
2964
.vsz_limit = (uoff_t)-1,
2966
.unix_listeners = { { &imap_urlauth_worker_unix_listeners_buf,
2967
sizeof(imap_urlauth_worker_unix_listeners[0]) } },
2968
.fifo_listeners = ARRAY_INIT,
2969
.inet_listeners = ARRAY_INIT
2972
#define DEF(type, name) \
2973
{ type, #name, offsetof(struct imap_urlauth_worker_settings, name), NULL }
2974
static const struct setting_define imap_urlauth_worker_setting_defines[] = {
2975
DEF(SET_BOOL, verbose_proctitle),
2977
DEF(SET_STR, imap_urlauth_host),
2978
DEF(SET_UINT, imap_urlauth_port),
2980
SETTING_DEFINE_LIST_END
2982
const struct imap_urlauth_worker_settings imap_urlauth_worker_default_settings = {
2983
.verbose_proctitle = FALSE,
2985
.imap_urlauth_host = "",
2986
.imap_urlauth_port = 143
2988
static const struct setting_parser_info *imap_urlauth_worker_setting_dependencies[] = {
2989
&mail_user_setting_parser_info,
2992
const struct setting_parser_info imap_urlauth_worker_setting_parser_info = {
2993
.module_name = "imap-urlauth-worker",
2994
.defines = imap_urlauth_worker_setting_defines,
2995
.defaults = &imap_urlauth_worker_default_settings,
2997
.type_offset = (size_t)-1,
2998
.struct_size = sizeof(struct imap_urlauth_worker_settings),
3000
.parent_offset = (size_t)-1,
3002
.dependencies = imap_urlauth_worker_setting_dependencies
3004
/* ../../src/imap-urlauth/imap-urlauth-settings.c */
3005
/* <settings checks> */
3006
static struct file_listener_settings imap_urlauth_unix_listeners_array[] = {
3007
{ "token-login/imap-urlauth", 0666, "", "" }
3009
static struct file_listener_settings *imap_urlauth_unix_listeners[] = {
3010
&imap_urlauth_unix_listeners_array[0]
3012
static buffer_t imap_urlauth_unix_listeners_buf = {
3013
imap_urlauth_unix_listeners, sizeof(imap_urlauth_unix_listeners), { 0, }
3015
/* </settings checks> */
3016
struct service_settings imap_urlauth_service_settings = {
3017
.name = "imap-urlauth",
3020
.executable = "imap-urlauth",
3021
.user = "$default_internal_user",
3023
.privileged_group = "",
3027
.drop_priv_before_exec = FALSE,
3029
.process_min_avail = 0,
3030
.process_limit = 1024,
3034
.vsz_limit = (uoff_t)-1,
3036
.unix_listeners = { { &imap_urlauth_unix_listeners_buf,
3037
sizeof(imap_urlauth_unix_listeners[0]) } },
3038
.fifo_listeners = ARRAY_INIT,
3039
.inet_listeners = ARRAY_INIT
3042
#define DEF(type, name) \
3043
{ type, #name, offsetof(struct imap_urlauth_settings, name), NULL }
3044
static const struct setting_define imap_urlauth_setting_defines[] = {
3045
DEF(SET_STR, base_dir),
3047
DEF(SET_BOOL, mail_debug),
3049
DEF(SET_BOOL, verbose_proctitle),
3051
DEF(SET_STR, imap_urlauth_logout_format),
3052
DEF(SET_STR, imap_urlauth_submit_user),
3053
DEF(SET_STR, imap_urlauth_stream_user),
3055
SETTING_DEFINE_LIST_END
3057
const struct imap_urlauth_settings imap_urlauth_default_settings = {
3058
.base_dir = PKG_RUNDIR,
3059
.mail_debug = FALSE,
3061
.verbose_proctitle = FALSE,
3063
.imap_urlauth_logout_format = "in=%i out=%o",
3064
.imap_urlauth_submit_user = NULL,
3065
.imap_urlauth_stream_user = NULL
3067
static const struct setting_parser_info *imap_urlauth_setting_dependencies[] = {
3070
const struct setting_parser_info imap_urlauth_setting_parser_info = {
3071
.module_name = "imap-urlauth",
3072
.defines = imap_urlauth_setting_defines,
3073
.defaults = &imap_urlauth_default_settings,
3075
.type_offset = (size_t)-1,
3076
.struct_size = sizeof(struct imap_urlauth_settings),
3078
.parent_offset = (size_t)-1,
3080
.dependencies = imap_urlauth_setting_dependencies
3082
/* ../../src/imap-urlauth/imap-urlauth-login-settings.c */
3083
/* <settings checks> */
3084
static struct file_listener_settings
3085
imap_urlauth_login_unix_listeners_array[] = {
3086
{ "imap-urlauth", 0666, "", "" }
3088
static struct file_listener_settings *imap_urlauth_login_unix_listeners[] = {
3089
&imap_urlauth_login_unix_listeners_array[0]
3091
static buffer_t imap_urlauth_login_unix_listeners_buf = {
3092
imap_urlauth_login_unix_listeners,
3093
sizeof(imap_urlauth_login_unix_listeners), { 0, }
3095
/* </settings checks> */
3096
struct service_settings imap_urlauth_login_service_settings = {
3097
.name = "imap-urlauth-login",
3100
.executable = "imap-urlauth-login",
3101
.user = "$default_login_user",
3103
.privileged_group = "",
3105
.chroot = "token-login",
3107
.drop_priv_before_exec = FALSE,
3109
.process_min_avail = 0,
3114
.vsz_limit = (uoff_t)-1,
3116
.unix_listeners = { { &imap_urlauth_login_unix_listeners_buf,
3117
sizeof(imap_urlauth_login_unix_listeners[0]) } },
3118
.fifo_listeners = ARRAY_INIT,
3119
.inet_listeners = ARRAY_INIT
3121
static const struct setting_define imap_urlauth_login_setting_defines[] = {
3122
SETTING_DEFINE_LIST_END
3124
static const struct setting_parser_info *imap_urlauth_login_setting_dependencies[] = {
3125
&login_setting_parser_info,
3128
const struct setting_parser_info imap_urlauth_login_setting_parser_info = {
3129
.module_name = "imap-urlauth-login",
3130
.defines = imap_urlauth_login_setting_defines,
3132
.type_offset = (size_t)-1,
3133
.parent_offset = (size_t)-1,
3135
.dependencies = imap_urlauth_login_setting_dependencies
3137
const struct setting_parser_info *imap_urlauth_login_setting_roots[] = {
3138
&login_setting_parser_info,
3139
&imap_urlauth_login_setting_parser_info,
2944
3142
/* ../../src/imap-login/imap-login-settings.c */
2945
3143
/* <settings checks> */
2946
3144
static struct inet_listener_settings imap_login_inet_listeners_array[] = {
2947
{ "imap", "", 143, FALSE },
2948
{ "imaps", "", 993, TRUE }
3145
{ .name = "imap", .address = "", .port = 143 },
3146
{ .name = "imaps", .address = "", .port = 993, .ssl = TRUE }
2950
3148
static struct inet_listener_settings *imap_login_inet_listeners[] = {
2951
3149
&imap_login_inet_listeners_array[0],
3070
3272
{ type, #name, offsetof(struct doveadm_settings, name), NULL }
3071
3273
static const struct setting_define doveadm_setting_defines[] = {
3072
3274
DEF(SET_STR, base_dir),
3275
DEF(SET_STR, libexec_dir),
3073
3276
DEF(SET_STR, mail_plugins),
3074
3277
DEF(SET_STR, mail_plugin_dir),
3278
DEF(SET_STR, auth_socket_path),
3075
3279
DEF(SET_STR, doveadm_socket_path),
3076
3280
DEF(SET_UINT, doveadm_worker_count),
3077
DEF(SET_UINT, doveadm_proxy_port),
3281
DEF(SET_UINT, doveadm_port),
3282
{ SET_ALIAS, "doveadm_proxy_port", 0, NULL },
3078
3283
DEF(SET_STR, doveadm_password),
3079
3284
DEF(SET_STR, doveadm_allowed_commands),
3080
3285
DEF(SET_STR, dsync_alt_char),
3081
3286
DEF(SET_STR, dsync_remote_cmd),
3287
DEF(SET_STR, ssl_client_ca_dir),
3288
DEF(SET_STR, ssl_client_ca_file),
3083
3290
{ SET_STRLIST, "plugin", offsetof(struct doveadm_settings, plugin_envs), NULL },
3758
4030
config_all_services, sizeof(config_all_services), { 0, }
3760
4032
const struct setting_parser_info *all_default_roots[] = {
3761
&dict_setting_parser_info,
3762
&master_setting_parser_info,
4033
&master_service_setting_parser_info,
4034
&master_service_ssl_setting_parser_info,
4035
&stats_setting_parser_info,
4036
&lda_setting_parser_info,
4037
&imap_urlauth_setting_parser_info,
4038
&imap_urlauth_login_setting_parser_info,
4039
&pop3c_setting_parser_info,
4040
&auth_setting_parser_info,
3763
4041
&pop3_login_setting_parser_info,
3764
&pop3_setting_parser_info,
4042
&mbox_setting_parser_info,
4043
&lmtp_setting_parser_info,
4044
&director_setting_parser_info,
3765
4045
&replicator_setting_parser_info,
3766
&lda_setting_parser_info,
3767
&aggregator_setting_parser_info,
3768
&ssl_params_setting_parser_info,
4046
&mail_user_setting_parser_info,
3769
4047
&mdbox_setting_parser_info,
3770
4048
&doveadm_setting_parser_info,
3771
&mail_user_setting_parser_info,
4049
&master_setting_parser_info,
4050
&aggregator_setting_parser_info,
4051
&login_setting_parser_info,
4052
&mail_storage_setting_parser_info,
3772
4053
&imap_login_setting_parser_info,
3773
&mail_storage_setting_parser_info,
3774
&director_setting_parser_info,
3775
&stats_setting_parser_info,
4054
&ssl_params_setting_parser_info,
3776
4055
&imapc_setting_parser_info,
4056
&imap_setting_parser_info,
4057
&pop3_setting_parser_info,
4058
&dict_setting_parser_info,
3777
4059
&maildir_setting_parser_info,
3778
&lmtp_setting_parser_info,
3779
&master_service_setting_parser_info,
3780
&login_setting_parser_info,
3781
&auth_setting_parser_info,
3782
&mbox_setting_parser_info,
3783
&pop3c_setting_parser_info,
3784
&imap_setting_parser_info,
4060
&imap_urlauth_worker_setting_parser_info,
3787
4063
const struct setting_parser_info *const *all_roots = all_default_roots;