view src/master/service-anvil.h @ 23017:c1d36f2575c7 default tip

lib-imap: Fix "Don't accept strings with NULs" cherry-pick
author Timo Sirainen <timo.sirainen@open-xchange.com>
date Thu, 29 Aug 2019 09:55:25 +0300
parents 926a7ceeaa10
children
line wrap: on
line source

#ifndef SERVICE_ANVIL_H
#define SERVICE_ANVIL_H

struct service_anvil_global {
	pid_t pid;
	unsigned int uid;

	int status_fd[2];
	/* passed to child processes */
	int blocking_fd[2];
	/* used by master process to notify about dying processes */
	int nonblocking_fd[2];
	/* master process sends new log fds to anvil via this unix socket */
	int log_fdpass_fd[2];

	struct service_process_notify *kills;
	struct io *io_blocking, *io_nonblocking;

	unsigned int process_count;
	/* anvil crashed and we're now restarting it */
	bool restarted;
};

extern struct service_anvil_global *service_anvil_global;

void service_anvil_monitor_start(struct service_list *service_list);

void service_anvil_process_created(struct service_process *process);
void service_anvil_process_destroyed(struct service_process *process);

void service_anvil_send_log_fd(void);

void service_anvil_global_init(void);
void service_anvil_global_deinit(void);

#endif