mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-14 12:23:58 +00:00
daemon: consolidate variable declarations and initializaions
- improve readability by breaking apart single-line multi-variable declarations
- initialize simple variables at declaration site
- move other top-level variable initializations closer declarations
to avoid potential UB and unclutter the use-site.
Reviewed by: kevans
Pull Request: https://github.com/freebsd/freebsd-src/pull/669
(cherry picked from commit e745dc2287
)
This commit is contained in:
parent
488cf4bb6f
commit
d24c97ebfb
|
@ -79,8 +79,10 @@ static void open_pid_files(const char *, const char *, struct pidfh **,
|
|||
static void do_output(const unsigned char *, size_t, struct log_params *);
|
||||
static void daemon_sleep(time_t, long);
|
||||
|
||||
static volatile sig_atomic_t terminate = 0, child_gone = 0, pid = 0,
|
||||
do_log_reopen = 0;
|
||||
static volatile sig_atomic_t terminate = 0;
|
||||
static volatile sig_atomic_t child_gone = 0;
|
||||
static volatile sig_atomic_t pid = 0;
|
||||
static volatile sig_atomic_t do_log_reopen = 0;
|
||||
|
||||
static const char shortopts[] = "+cfHSp:P:ru:o:s:l:t:m:R:T:h";
|
||||
|
||||
|
@ -139,27 +141,37 @@ usage(int exitcode)
|
|||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
const char *pidfile, *ppidfile, *title, *user, *outfn, *logtag;
|
||||
int ch, nochdir, noclose, restart, dosyslog, child_eof;
|
||||
sigset_t mask_susp, mask_orig, mask_read, mask_term;
|
||||
struct log_params logpar;
|
||||
int pfd[2] = { -1, -1 }, outfd = -1;
|
||||
int stdmask, logpri, logfac, log_reopen;
|
||||
struct pidfh *ppfh, *pfh;
|
||||
char *p;
|
||||
char *p = NULL;
|
||||
const char *pidfile = NULL;
|
||||
const char *logtag = "daemon";
|
||||
const char *outfn = NULL;
|
||||
const char *ppidfile = NULL;
|
||||
const char *title = NULL;
|
||||
const char *user = NULL;
|
||||
int ch = 0;
|
||||
int child_eof = 0;
|
||||
int dosyslog = 0;
|
||||
int log_reopen = 0;
|
||||
int logfac = LOG_DAEMON;
|
||||
int logpri = LOG_NOTICE;
|
||||
int nochdir = 1;
|
||||
int noclose = 1;
|
||||
int outfd = -1;
|
||||
int pfd[2] = { -1, -1 };
|
||||
int restart = 0;
|
||||
int stdmask = STDOUT_FILENO | STDERR_FILENO;
|
||||
struct log_params logpar = { 0 };
|
||||
struct pidfh *ppfh = NULL;
|
||||
struct pidfh *pfh = NULL;
|
||||
sigset_t mask_orig;
|
||||
sigset_t mask_read;
|
||||
sigset_t mask_term;
|
||||
sigset_t mask_susp;
|
||||
|
||||
sigemptyset(&mask_susp);
|
||||
sigemptyset(&mask_read);
|
||||
sigemptyset(&mask_term);
|
||||
|
||||
memset(&logpar, 0, sizeof(logpar));
|
||||
stdmask = STDOUT_FILENO | STDERR_FILENO;
|
||||
ppidfile = pidfile = user = NULL;
|
||||
nochdir = noclose = 1;
|
||||
logpri = LOG_NOTICE;
|
||||
logfac = LOG_DAEMON;
|
||||
logtag = "daemon";
|
||||
restart = 0;
|
||||
dosyslog = 0;
|
||||
log_reopen = 0;
|
||||
outfn = NULL;
|
||||
title = NULL;
|
||||
while ((ch = getopt_long(argc, argv, shortopts, longopts, NULL)) != -1) {
|
||||
switch (ch) {
|
||||
case 'c':
|
||||
|
@ -251,7 +263,6 @@ main(int argc, char *argv[])
|
|||
openlog(logtag, LOG_PID | LOG_NDELAY, logfac);
|
||||
}
|
||||
|
||||
ppfh = pfh = NULL;
|
||||
/*
|
||||
* Try to open the pidfile before calling daemon(3),
|
||||
* to be able to report the error intelligently
|
||||
|
@ -294,18 +305,15 @@ main(int argc, char *argv[])
|
|||
sigemptyset(&act_hup.sa_mask);
|
||||
|
||||
/* Block these when avoiding racing before sigsuspend(). */
|
||||
sigemptyset(&mask_susp);
|
||||
sigaddset(&mask_susp, SIGTERM);
|
||||
sigaddset(&mask_susp, SIGCHLD);
|
||||
/* Block SIGTERM when we lack a valid child PID. */
|
||||
sigemptyset(&mask_term);
|
||||
sigaddset(&mask_term, SIGTERM);
|
||||
/*
|
||||
* When reading, we wish to avoid SIGCHLD. SIGTERM
|
||||
* has to be caught, otherwise we'll be stuck until
|
||||
* the read() returns - if it returns.
|
||||
*/
|
||||
sigemptyset(&mask_read);
|
||||
sigaddset(&mask_read, SIGCHLD);
|
||||
/* Block SIGTERM to avoid racing until we have forked. */
|
||||
if (sigprocmask(SIG_BLOCK, &mask_term, &mask_orig)) {
|
||||
|
@ -406,7 +414,6 @@ main(int argc, char *argv[])
|
|||
* might have closed its stdout and stderr, so we must wait for
|
||||
* the SIGCHLD to ensure that the process is actually gone.
|
||||
*/
|
||||
child_eof = 0;
|
||||
for (;;) {
|
||||
/*
|
||||
* We block SIGCHLD when listening, but SIGTERM we accept
|
||||
|
|
Loading…
Reference in a new issue