From: Valentine Krasnobaeva Date: Thu, 27 Jun 2024 16:16:40 +0000 (+0200) Subject: MINOR: startup: refactor "daemonization" fork X-Git-Tag: v3.1-dev10~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95c19be2abc3b2d4070c80344db7875adf23c22a;p=thirdparty%2Fhaproxy.git MINOR: startup: refactor "daemonization" fork Let's put "daemonization" fork into a switch-case. This is more readable and we don't need to allocate memory for the fork() return value here. --- diff --git a/src/haproxy.c b/src/haproxy.c index c39621eb80..60c6fc6e92 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2121,14 +2121,22 @@ static void init(int argc, char **argv) if ((getenv("HAPROXY_MWORKER_REEXEC") == NULL) && (global.mode & MODE_DAEMON)) { ret = fork(); - if (ret < 0) { + switch(ret) { + case -1: ha_alert("[%s.main()] Cannot fork.\n", argv[0]); protocol_unbind_all(); exit(1); /* there has been an error */ - } else if (ret > 0) { /* parent leave to daemonize */ - exit(0); - } else /* change the process group ID in the child (master process) */ + case 0: + /* in child, change the process group ID, in the master-worker + * mode, this will be the master process + */ setsid(); + + break; + default: + /* in parent, which leaves to daemonize */ + exit(0); + } } if (global.mode & (MODE_MWORKER|MODE_MWORKER_WAIT))