MINOR: mworker: allocate and initialize a mworker_proc
mworker_proc_new() allocates and initializes correctly a mworker_proc
structure.
diff --git a/include/haproxy/mworker.h b/include/haproxy/mworker.h
index 09d6d58..c9dd840 100644
--- a/include/haproxy/mworker.h
+++ b/include/haproxy/mworker.h
@@ -41,6 +41,7 @@
void mworker_kill_max_reloads(int sig);
+struct mworker_proc *mworker_proc_new();
void mworker_free_child(struct mworker_proc *);
void mworker_cleanup_proc();
diff --git a/src/haproxy.c b/src/haproxy.c
index eb6c520..84e6b90 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1937,37 +1937,25 @@
if (getenv("HAPROXY_MWORKER_REEXEC") == NULL) {
- tmproc = calloc(1, sizeof(*tmproc));
+ tmproc = mworker_proc_new();
if (!tmproc) {
ha_alert("Cannot allocate process structures.\n");
exit(EXIT_FAILURE);
}
tmproc->options |= PROC_O_TYPE_MASTER; /* master */
- tmproc->failedreloads = 0;
- tmproc->reloads = 0;
tmproc->pid = pid;
tmproc->timestamp = start_date.tv_sec;
- tmproc->ipc_fd[0] = -1;
- tmproc->ipc_fd[1] = -1;
-
proc_self = tmproc;
LIST_APPEND(&proc_list, &tmproc->list);
}
- tmproc = calloc(1, sizeof(*tmproc));
+ tmproc = mworker_proc_new();
if (!tmproc) {
ha_alert("Cannot allocate process structures.\n");
exit(EXIT_FAILURE);
}
-
tmproc->options |= PROC_O_TYPE_WORKER; /* worker */
- tmproc->pid = -1;
- tmproc->failedreloads = 0;
- tmproc->reloads = 0;
- tmproc->timestamp = -1;
- tmproc->ipc_fd[0] = -1;
- tmproc->ipc_fd[1] = -1;
if (mworker_cli_sockpair_new(tmproc, 0) < 0) {
exit(EXIT_FAILURE);
diff --git a/src/mworker.c b/src/mworker.c
index fa3c1a2..5d30b18 100644
--- a/src/mworker.c
+++ b/src/mworker.c
@@ -128,6 +128,25 @@
setenv("HAPROXY_PROCESSES", msg, 1);
}
+struct mworker_proc *mworker_proc_new()
+{
+ struct mworker_proc *child;
+
+ child = calloc(1, sizeof(*child));
+ if (!child)
+ return NULL;
+
+ child->failedreloads = 0;
+ child->reloads = 0;
+ child->pid = -1;
+ child->ipc_fd[0] = -1;
+ child->ipc_fd[1] = -1;
+ child->timestamp = -1;
+
+ return child;
+}
+
+
/*
* unserialize the proc list from the environment
*/
@@ -147,7 +166,7 @@
msg = NULL;
- child = calloc(1, sizeof(*child));
+ child = mworker_proc_new();
if (!child) {
ha_alert("Out of memory while trying to allocate a worker process structure.");
return -1;