main.c revision 38318f5e82662615cd88e99e398efe4a630ce020
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainen/* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainenbool disable_plaintext_auth, process_per_connection;
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainenbool verbose_proctitle, verbose_ssl, verbose_auth;
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainenconst char *const *log_format_elements;
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainenstatic const char *process_name;
5ce2084ada06ade9f44fc2914c34658e9a842dc1Timo Sirainenstatic unsigned int listen_count, ssl_listen_count;
void main_unref(void)
if (--main_refcount == 0) {
master_close();
} else if (clients_get_count() == 0) {
int fd;
if (fd < 0) {
local_port = 0;
if (process_per_connection) {
if (fd < 0) {
local_port = 0;
if (process_per_connection) {
void main_listen_start(void)
unsigned int i, current_count;
int cur_fd;
if (listening)
if (closing_down) {
void main_listen_stop(void)
unsigned int i, count;
int cur_fd;
if (!listening)
for (i = 0; i < count; i++)
if (closing_down) {
cur_fd);
unsigned int current_count;
if (connected)
static void drop_privileges(void)
const char *value;
if (!is_inetd)
random_init();
static void main_init(void)
const char *value;
if (login_process_uid == 0)
/* capability default is set in imap/pop3-login */
main_refcount = 0;
clients_init();
if (!is_inetd) {
static void main_deinit(void)
closelog();
const char *group_name;
#ifdef DEBUG
const char *env;
lib_init();
if (is_inetd) {
main_init();
if (is_inetd) {
local_port = 0;
main_deinit();
lib_deinit();