main.c revision 230ef558135f16a66b86cbe3762524eaa9ae9d81
6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8Timo Sirainen/* Copyright (C) 2009 Dovecot authors, see the included COPYING file */
6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8Timo Sirainenstatic void client_connected(const struct master_service_connection *conn)
c405d7235ba2e21a306eacc9fc0f15e66f9ee718Timo Sirainen bool master = conn->listen_fd == MASTER_LISTEN_FD_FIRST;
5dd73391f9dfb2396cf2060402017f6080c93dc7Timo Sirainen anvil_connection_create(conn->fd, master, conn->fifo);
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainenstatic void log_fdpass_input(void *context ATTR_UNUSED)
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen /* master wants us to replace the log fd */
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen ret = fd_read(MASTER_ANVIL_LOG_FDPASS_FD, &c, 1, &fd);
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen else if (ret == 0) {
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen /* master died. lib-master should notice it soon. */
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen i_fatal("dup2(fd_read log fd, stderr) failed: %m");
a3fe8c0c54d87822f4b4f8f0d10caac611861b2bTimo Sirainen master_service = master_service_init("anvil", 0, &argc, &argv, NULL);
e0740628f6ca05f4bc79a9d8a90b650f4d38d4d0Timo Sirainen master_service_init_log(master_service, "anvil: ");
230ef558135f16a66b86cbe3762524eaa9ae9d81Timo Sirainen log_fdpass_io = io_add(MASTER_ANVIL_LOG_FDPASS_FD, IO_READ,