/* * include/haproxy/mworker-t.h * Master Worker type definitions. * * Copyright HAProxy Technologies 2019 - William Lallemand * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * */ #ifndef _HAPROXY_MWORKER_T_H_ #define _HAPROXY_MWORKER_T_H_ #include #include /* options for mworker_proc */ #define PROC_O_TYPE_MASTER 0x00000001 #define PROC_O_TYPE_WORKER 0x00000002 #define PROC_O_TYPE_PROG 0x00000004 /* 0x00000008 unused */ #define PROC_O_LEAVING 0x00000010 /* this process should be leaving */ /* 0x00000020 to 0x00000080 unused */ #define PROC_O_START_RELOAD 0x00000100 /* Start the process even if the master was re-executed */ /* * Structure used to describe the processes in master worker mode */ struct server; struct mworker_proc { int pid; int options; char *id; char **command; char *path; char *version; int ipc_fd[2]; /* 0 is master side, 1 is worker side */ int reloads; int failedreloads; /* number of failed reloads since the last successful one */ int timestamp; struct server *srv; /* the server entry in the master proxy */ struct list list; int uid; int gid; }; #endif /* _HAPROXY_MWORKER_T_H_ */