view src/stats/client.h @ 19604:c996bc091c6b

master: Do not close stdout if going foreground This lets one to use /dev/stdout for logging. Mainly useful for testing purposes where we can generate log output to stdout and use tee to write it to a file for later examination.
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 18 Jan 2016 15:50:23 +0200
parents c51fbe64eae1
children
line wrap: on
line source

#ifndef CLIENT_H
#define CLIENT_H

struct client {
	struct client *prev, *next;

	int fd;
	struct io *io;
	struct istream *input;
	struct ostream *output;
	struct timeout *to_pending;

	pool_t cmd_pool;
	struct client_export_cmd *cmd_export;
	int (*cmd_more)(struct client *client);

	/* command iterators. while non-NULL, they've increased the
	   struct's refcount so it won't be deleted during iteration */
	unsigned int iter_count;
	struct mail_command *mail_cmd_iter;
	struct mail_session *mail_session_iter;
	struct mail_user *mail_user_iter;
	struct mail_domain *mail_domain_iter;
	struct mail_ip *mail_ip_iter;
};

struct client *client_create(int fd);
void client_destroy(struct client **client);

bool client_is_busy(struct client *client);
void client_enable_io(struct client *client);

void clients_destroy_all(void);

#endif