main.c revision 007d354a674fb3ddf49db160cf050cf61270a1a0
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen/* Copyright (C) 2002 Timo Sirainen */
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainenstatic void sig_quit(int signo __attr_unused__)
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainenstatic void auth_accept(void *context __attr_unused__)
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainenstatic void open_logfile(void)
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen i_set_failure_syslog("dovecot-auth", LOG_NDELAY, LOG_MAIL);
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen /* log to file or stderr */
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen i_set_failure_file(getenv("LOGFILE"), "dovecot-auth");
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen i_set_failure_timestamp_format(getenv("LOGSTAMP"));
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainenstatic void drop_privileges(void)
f923659c0e5298263d80622c99f4dc4132b4675bTimo Sirainen /* Log file or syslog opening probably requires roots */
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen /* Open /dev/urandom before chrooting */
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen /* Password lookups etc. may require roots, allow it. */
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainenstatic void main_init(void)
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen verbose_debug = getenv("VERBOSE_DEBUG") != NULL;
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen io_listen = io_add(LOGIN_LISTEN_FD, IO_READ, auth_accept, NULL);
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen /* initialize master last - it sends the "we're ok" notification */
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainenstatic void main_deinit(void)
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainen i_warning("Killed with signal %d", lib_signal_kill);
812ac1e2570c600a086c09b24d250224a822a97dTimo Sirainenint main(int argc __attr_unused__, char *argv[] __attr_unused__)
d65a556a5ec078cd7f1d0060adb16fc860d66b27Timo Sirainen /* NOTE: we start rooted, so keep the code minimal until
d65a556a5ec078cd7f1d0060adb16fc860d66b27Timo Sirainen restrict_access_by_env() is called */