예제 #1
0
static void client_connected(struct master_service_connection *conn)
{
	bool master = conn->listen_fd == MASTER_LISTEN_FD_FIRST;

	master_service_client_connection_accept(conn);
	(void)anvil_connection_create(conn->fd, master, conn->fifo);
}
예제 #2
0
파일: main.c 프로젝트: jkerihuel/dovecot
static void client_connected(struct master_service_connection *conn)
{
	const char *access_sockets =
		global_login_settings->login_access_sockets;
	struct login_access_lookup *lookup;

	master_service_client_connection_accept(conn);
	if (conn->remote_ip.family != 0) {
		/* log the connection's IP address in case we crash. it's of
		   course possible that another earlier client causes the
		   crash, but this is better than nothing. */
		i_set_failure_send_ip(&conn->remote_ip);
	}

	/* make sure we're connected (or attempting to connect) to auth */
	auth_client_connect(auth_client);

	if (*access_sockets == '\0') {
		/* no access checks */
		client_connected_finish(conn);
		return;
	}

	lookup = i_new(struct login_access_lookup, 1);
	lookup->conn = *conn;
	lookup->io = io_add(conn->fd, IO_READ, client_input_error, lookup);
	lookup->sockets = p_strsplit_spaces(default_pool, access_sockets, " ");
	lookup->next_socket = lookup->sockets;

	login_access_lookup_next(lookup);
}
예제 #3
0
파일: main.c 프로젝트: bdraco/dovecot
static void client_connected(struct master_service_connection *conn)
{
	/* when running standalone, we shouldn't even get here */
	i_assert(master_login != NULL);

	master_service_client_connection_accept(conn);
	master_login_add(master_login, conn->fd);
}
예제 #4
0
파일: main.c 프로젝트: bdraco/core
static void client_connected(struct master_service_connection *conn)
{
	if (conn->fifo)
		(void)fifo_input_connection_create(conn->fd);
	else
		(void)client_create(conn->fd);
	master_service_client_connection_accept(conn);
}
예제 #5
0
static void client_connected(struct master_service_connection *conn)
{
	master_service_client_connection_accept(conn);
	if (strcmp(conn->name, "replicator-doveadm") == 0)
		doveadm_connection_create(queue, conn->fd);
	else
		(void)notify_connection_create(conn->fd, queue);
}
예제 #6
0
static void client_connected(struct master_service_connection *conn)
{
	master_service_client_connection_accept(conn);

	if (ipc_socket_is_client(conn->name))
		(void)client_create(conn->fd);
	else
		(void)ipc_connection_create(conn->listen_fd, conn->fd);
}
예제 #7
0
static void client_connected(struct master_service_connection *conn)
{
	if (master_conn != NULL) {
		i_error("indexer-worker must be configured with client_limit=1");
		return;
	}

	master_service_client_connection_accept(conn);
	master_conn = master_connection_create(conn->fd, storage_service);
}
예제 #8
0
static void client_connected(struct master_service_connection *conn)
{
	if (dns_client != NULL) {
		i_error("dns-client must be configured with client_limit=1");
		return;
	}

	master_service_client_connection_accept(conn);
	dns_client = dns_client_create(conn->fd);
}
예제 #9
0
파일: main.c 프로젝트: jfsmig/dovecot-core
static void client_connected(struct master_service_connection *conn)
{
	if (doveadm_client != NULL) {
		i_error("doveadm server can handle only a single client");
		return;
	}

	master_service_client_connection_accept(conn);
	doveadm_client = client_connection_create(conn->fd, conn->listen_fd,
						  conn->ssl);
}
예제 #10
0
파일: main.c 프로젝트: LTD-Beget/dovecot
static void client_connected(struct master_service_connection *conn)
{
	if (conn->fifo) {
		if (mail_server_conn != NULL) {
			i_error("Received another mail-server connection");
			return;
		}
		mail_server_conn = mail_server_connection_create(conn->fd);
	} else {
		(void)client_create(conn->fd);
	}
	master_service_client_connection_accept(conn);
}
예제 #11
0
파일: main.c 프로젝트: via/dovecot-clouddb
static void client_connected(struct master_service_connection *conn)
{
	if (to_startup != NULL)
		timeout_remove(&to_startup);
	master_service_client_connection_accept(conn);
	if (ssl_params->used == 0) {
		/* waiting for parameter building to finish */
		if (!array_is_created(&delayed_fds))
			i_array_init(&delayed_fds, 32);
		array_append(&delayed_fds, &conn->fd, 1);
	} else {
		client_handle(conn->fd);
	}
}
예제 #12
0
static void client_connected(struct master_service_connection *conn)
{
	master_service_client_connection_accept(conn);
	notify_connection_create(conn->fd, conn->fifo);
}
예제 #13
0
파일: main.c 프로젝트: via/dovecot-clouddb
static void client_connected(struct master_service_connection *conn)
{
	master_service_client_connection_accept(conn);
	config_connection_create(conn->fd);
}
예제 #14
0
static void client_connected(struct master_service_connection *conn)
{
	master_service_client_connection_accept(conn);
	(void)indexer_client_create(conn->fd, queue);
}