]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mworker: allocate and initialize a mworker_proc
authorWilliam Lallemand <wlallemand@haproxy.org>
Fri, 28 Jan 2022 20:11:41 +0000 (21:11 +0100)
committerWilliam Lallemand <wlallemand@haproxy.org>
Fri, 28 Jan 2022 22:52:36 +0000 (23:52 +0100)
mworker_proc_new() allocates and initializes correctly a mworker_proc
structure.

include/haproxy/mworker.h
src/haproxy.c
src/mworker.c

index 09d6d587e25edcf4ca86cfbc1dc782877087f181..c9dd8406ff763ded231861201706b4378a76f473 100644 (file)
@@ -41,6 +41,7 @@ int mworker_ext_launch_all(void);
 
 void mworker_kill_max_reloads(int sig);
 
+struct mworker_proc *mworker_proc_new();
 void mworker_free_child(struct mworker_proc *);
 void mworker_cleanup_proc();
 
index eb6c520e621e9cf4ee7d165dd48d5111b60598c8..84e6b9050a6388a97bba427f3f36fbb18d877ecd 100644 (file)
@@ -1937,37 +1937,25 @@ static void init(int argc, char **argv)
 
                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);
index fa3c1a25d2224813d4c5b9897fd113f1b99d6c40..5d30b18519bbbbce8c2ed01a462999d58a951ae3 100644 (file)
@@ -128,6 +128,25 @@ void mworker_proc_list_to_env()
                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 @@ int mworker_env_to_proc_list()
 
                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;