main.c revision bbadd5331f534017cf62d5183003b3d9fdad079e
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch/* Copyright (c) 2002-2010 Dovecot authors, see the included COPYING file */
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch#define AUTH_PENALTY_ANVIL_PATH "anvil-auth-penalty"
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Boschstatic ARRAY_DEFINE(listen_fd_types, enum auth_socket_type);
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch "[%u wait, %u passdb, %u userdb]",
639bb36b12b9f9bb54c8bb1be50eac623622f8a0Timo Sirainen auth_request_state_count[AUTH_REQUEST_STATE_NEW] +
dc78180b54a05d5736d0e0e444cba0332265eb62Phil Carmody auth_request_state_count[AUTH_REQUEST_STATE_MECH_CONTINUE] +
639bb36b12b9f9bb54c8bb1be50eac623622f8a0Timo Sirainen auth_request_state_count[AUTH_REQUEST_STATE_FINISHED],
639bb36b12b9f9bb54c8bb1be50eac623622f8a0Timo Sirainen auth_request_state_count[AUTH_REQUEST_STATE_PASSDB],
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch auth_request_state_count[AUTH_REQUEST_STATE_USERDB]));
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Boschstatic const char *const *read_global_settings(void)
4d955db590c3d76a631dfc5d37bcdf578a43e55aStephan Bosch struct master_service_settings_output set_output;
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch unsigned int i, count;
6ae6496c225238a2c55a8cd96744ad976c44a726Stephan Bosch auth_set_pool = pool_alloconly_create("auth settings", 8192);
for (i = 0; i < count; i++) {
return services;
static void main_preinit(void)
const char *const *services;
random_init();
passdbs_init();
userdbs_init();
static void main_init(void)
auths_init();
if (worker) {
static void main_deinit(void)
auths_deinit();
name++;
suffix++;
switch (*type) {
case AUTH_SOCKET_MASTER:
case AUTH_SOCKET_USERDB:
case AUTH_SOCKET_LOGIN_CLIENT:
case AUTH_SOCKET_CLIENT:
i_unreached();
return FATAL_DEFAULT;
main_preinit();
main_init();
main_deinit();