Mercurial > dovecot > core-2.2
view src/director/director-settings.c @ 22713:cb108f786fb4
Updated copyright notices to include the year 2018.
author | Stephan Bosch <stephan.bosch@dovecot.fi> |
---|---|
date | Mon, 01 Jan 2018 22:42:08 +0100 |
parents | 5f9ff9066649 |
children |
line wrap: on
line source
/* Copyright (c) 2009-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "buffer.h" #include "settings-parser.h" #include "service-settings.h" #include "director-settings.h" /* <settings checks> */ static bool director_settings_verify(void *_set, pool_t pool, const char **error_r); static struct file_listener_settings director_unix_listeners_array[] = { { "login/director", 0, "", "" }, { "director-admin", 0600, "", "" } }; static struct file_listener_settings *director_unix_listeners[] = { &director_unix_listeners_array[0], &director_unix_listeners_array[1] }; static buffer_t director_unix_listeners_buf = { director_unix_listeners, sizeof(director_unix_listeners), { NULL, } }; static struct file_listener_settings director_fifo_listeners_array[] = { { "login/proxy-notify", 0, "", "" } }; static struct file_listener_settings *director_fifo_listeners[] = { &director_fifo_listeners_array[0] }; static buffer_t director_fifo_listeners_buf = { director_fifo_listeners, sizeof(director_fifo_listeners), { NULL, } }; /* </settings checks> */ struct service_settings director_service_settings = { .name = "director", .protocol = "", .type = "", .executable = "director", .user = "$default_internal_user", .group = "", .privileged_group = "", .extra_groups = "", .chroot = ".", .drop_priv_before_exec = FALSE, .process_min_avail = 0, .process_limit = 1, .client_limit = 0, .service_count = 0, .idle_kill = UINT_MAX, .vsz_limit = (uoff_t)-1, .unix_listeners = { { &director_unix_listeners_buf, sizeof(director_unix_listeners[0]) } }, .fifo_listeners = { { &director_fifo_listeners_buf, sizeof(director_fifo_listeners[0]) } }, .inet_listeners = ARRAY_INIT, .process_limit_1 = TRUE }; #undef DEF #define DEF(type, name) \ { type, #name, offsetof(struct director_settings, name), NULL } static const struct setting_define director_setting_defines[] = { DEF(SET_STR, master_user_separator), DEF(SET_STR, director_servers), DEF(SET_STR, director_mail_servers), DEF(SET_STR, director_username_hash), DEF(SET_STR, director_flush_socket), DEF(SET_TIME, director_ping_idle_timeout), DEF(SET_TIME, director_ping_max_timeout), DEF(SET_TIME, director_user_expire), DEF(SET_TIME, director_user_kick_delay), DEF(SET_IN_PORT, director_doveadm_port), DEF(SET_BOOL, director_consistent_hashing), DEF(SET_UINT, director_max_parallel_moves), DEF(SET_UINT, director_max_parallel_kicks), DEF(SET_SIZE, director_output_buffer_size), SETTING_DEFINE_LIST_END }; const struct director_settings director_default_settings = { .master_user_separator = "", .director_servers = "", .director_mail_servers = "", .director_username_hash = "%Lu", .director_flush_socket = "", .director_ping_idle_timeout = 30, .director_ping_max_timeout = 60, .director_user_expire = 60*15, .director_user_kick_delay = 2, .director_doveadm_port = 0, .director_max_parallel_moves = 100, .director_max_parallel_kicks = 100, .director_output_buffer_size = 10 * 1024 * 1024, }; const struct setting_parser_info director_setting_parser_info = { .module_name = "director", .defines = director_setting_defines, .defaults = &director_default_settings, .type_offset = (size_t)-1, .struct_size = sizeof(struct director_settings), .parent_offset = (size_t)-1, .check_func = director_settings_verify }; /* <settings checks> */ static bool director_settings_verify(void *_set, pool_t pool ATTR_UNUSED, const char **error_r) { struct director_settings *set = _set; if (set->director_user_expire < 10) { *error_r = "director_user_expire is too low"; return FALSE; } return TRUE; } /* </settings checks> */