auth-settings.c revision d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76
f8740ac53310cd28ba4ec6dc9e9ce6e9a3688f39Timo Sirainen/* Copyright (c) 2005-2009 Dovecot authors, see the included COPYING file */
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainenextern struct setting_parser_info auth_setting_parser_info;
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainenextern struct setting_parser_info auth_root_setting_parser_info;
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen { type, #name, offsetof(struct auth_passdb_settings, name), NULL }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstatic struct setting_define auth_passdb_setting_defines[] = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstruct setting_parser_info auth_passdb_setting_parser_info = {
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen MEMBER(type_offset) offsetof(struct auth_passdb_settings, driver),
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen MEMBER(struct_size) sizeof(struct auth_passdb_settings)
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen { type, #name, offsetof(struct auth_userdb_settings, name), NULL }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstatic struct setting_define auth_userdb_setting_defines[] = {
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainenstruct setting_parser_info auth_userdb_setting_parser_info = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(type_offset) offsetof(struct auth_userdb_settings, driver),
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen MEMBER(struct_size) sizeof(struct auth_userdb_settings)
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen { type, #name, offsetof(struct auth_settings, name), NULL }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen { SET_DEFLIST, name, offsetof(struct auth_settings, field), defines }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstatic struct setting_define auth_setting_defines[] = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen DEFLIST(passdbs, "passdb", &auth_passdb_setting_parser_info),
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen DEFLIST(userdbs, "userdb", &auth_userdb_setting_parser_info),
7000810786f2959f02cd6d2f4151a9eb61ff5db8Timo Sirainenstatic struct auth_settings auth_default_settings = {
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen MEMBER(username_chars) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@",
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(winbind_helper_path) "/usr/bin/ntlm_auth",
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainenstruct setting_parser_info auth_setting_parser_info = {
cc935aff970ed6c24d136cc560c7e705a49d536cTimo Sirainen MEMBER(parent) &auth_root_setting_parser_info,
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(parent_offset) offsetof(struct auth_settings, root),
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(type_offset) offsetof(struct auth_settings, name),
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(struct_size) sizeof(struct auth_settings),
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen { type, #name, offsetof(struct auth_root_settings, name), NULL }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen { SET_DEFLIST, name, offsetof(struct auth_root_settings, field), defines }
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstatic struct setting_define auth_root_setting_defines[] = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen DEFLIST(auths, "auth", &auth_setting_parser_info),
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstatic struct auth_root_settings auth_root_default_settings = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenstruct setting_parser_info auth_root_setting_parser_info = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen MEMBER(struct_size) sizeof(struct auth_root_settings)
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainenauth_settings_read(struct master_service *service, const char *name)
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen static const struct setting_parser_info *set_roots[] = {
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen unsigned int i, count;
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen if (master_service_settings_read(service, set_roots, NULL, FALSE,
d6a7cb184cc882a90aa3d9312082e0029f354ff6Timo Sirainen i_fatal("Error reading configuration: %s", error);
f5e8a76a128d4e92f0641135183c164fd5c5ce5eTimo Sirainen sets = master_service_settings_get_others(service);
f5e8a76a128d4e92f0641135183c164fd5c5ce5eTimo Sirainen for (i = 0; i < count; i++) {
f5e8a76a128d4e92f0641135183c164fd5c5ce5eTimo Sirainen i_fatal("Error reading configuration: No auth section: %s", name);