auth-settings.c revision 380dbb60ae291cbe39d1f710284562ca9167150b
b9f30617c2c96d54acbc4f85ed17b939c4f28916Timo Sirainen/* Copyright (c) 2005-2009 Dovecot authors, see the included COPYING file */
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenextern const struct setting_parser_info auth_setting_parser_info;
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenextern const struct setting_parser_info auth_root_setting_parser_info;
d477acb83e14a776ece4ca94dcd1869e75d0c6eeTimo Sirainenstatic bool auth_settings_check(void *_set, pool_t pool, const char **error_r);
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen/* <settings checks> */
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstatic struct file_listener_settings auth_unix_listeners_array[] = {
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstatic struct file_listener_settings *auth_unix_listeners[] = {
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen auth_unix_listeners, sizeof(auth_unix_listeners), { 0, }
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen/* </settings checks> */
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstruct service_settings auth_service_settings = {
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .unix_listeners = { { &auth_unix_listeners_buf,
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen/* <settings checks> */
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstatic struct file_listener_settings auth_worker_unix_listeners_array[] = {
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstatic struct file_listener_settings *auth_worker_unix_listeners[] = {
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstatic buffer_t auth_worker_unix_listeners_buf = {
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen auth_worker_unix_listeners, sizeof(auth_worker_unix_listeners), { 0, }
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainen/* </settings checks> */
9f0f2de10e4ea0c99052bf4b2bef8179f2536228Timo Sirainenstruct service_settings auth_worker_service_settings = {
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .unix_listeners = { { &auth_worker_unix_listeners_buf,
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen { type, #name, offsetof(struct auth_passdb_settings, name), NULL }
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenstatic const struct setting_define auth_passdb_setting_defines[] = {
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenconst struct setting_parser_info auth_passdb_setting_parser_info = {
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .type_offset = offsetof(struct auth_passdb_settings, driver),
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .struct_size = sizeof(struct auth_passdb_settings),
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen { type, #name, offsetof(struct auth_userdb_settings, name), NULL }
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenstatic const struct setting_define auth_userdb_setting_defines[] = {
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenconst struct setting_parser_info auth_userdb_setting_parser_info = {
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .type_offset = offsetof(struct auth_userdb_settings, driver),
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .struct_size = sizeof(struct auth_userdb_settings),
57d2429fae575e96ca276355af675deb66b76d00Timo Sirainen/* we're kind of kludging here to avoid "auth_" prefix in the struct fields */
57d2429fae575e96ca276355af675deb66b76d00Timo Sirainen { type, "auth_"#name, offsetof(struct auth_settings, name), NULL }
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen { SET_DEFLIST, name, offsetof(struct auth_settings, field), defines }
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenstatic const struct setting_define auth_setting_defines[] = {
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen DEFLIST(passdbs, "passdb", &auth_passdb_setting_parser_info),
a64adf62fa33f2463a86f990217b0c9078531a40Timo Sirainen DEFLIST(userdbs, "userdb", &auth_userdb_setting_parser_info),
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenstatic const struct auth_settings auth_default_settings = {
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen .username_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@",
7744586e3e0fd60158abfbb03a233d3bd8d6c48bTimo Sirainenconst struct setting_parser_info auth_setting_parser_info = {
d477acb83e14a776ece4ca94dcd1869e75d0c6eeTimo Sirainen/* <settings checks> */
9575316ab47b32f14c5f8527bbb9673b2827dee0Timo Sirainenstatic bool auth_settings_check(void *_set, pool_t pool ATTR_UNUSED,
d477acb83e14a776ece4ca94dcd1869e75d0c6eeTimo Sirainen/* </settings checks> */
2024157e8de36edd31f5fd72f5ea7364a0955fa7Timo Sirainenauth_settings_read(struct master_service *service)
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen static const struct setting_parser_info *set_roots[] = {
44aac2d461b4cb8e05e8c07f2f209372997a8719Timo Sirainen if (master_service_settings_read_simple(service, set_roots, &error) < 0)
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen i_fatal("Error reading configuration: %s", error);