struct pollfd pfd[1];
unsigned stamplog;
#endif
-};
+} FIX_ALIASING;
#define G (*(struct globals*)&bb_common_bufsiz1)
#define sv (G.sv )
#define svdir (G.svdir )
static void fatal2_cannot(const char *m1, const char *m2)
{
- bb_perror_msg_and_die("%s: fatal: cannot %s%s", svdir, m1, m2);
+ bb_perror_msg_and_die("%s: fatal: can't %s%s", svdir, m1, m2);
/* was exiting 100 */
}
static void warn3x(const char *m1, const char *m2, const char *m3)
}
static void warn2_cannot(const char *m1, const char *m2)
{
- warn3x("cannot ", m1, m2);
+ warn3x("can't ", m1, m2);
}
#if ENABLE_FEATURE_RUNSVDIR_LOG
static void warnx(const char *m1)
| (1 << SIGTERM)
, SIG_DFL);
#endif
- execlp("runsv", "runsv", name, NULL);
+ execlp("runsv", "runsv", name, (char *) NULL);
fatal2_cannot("start runsv ", name);
}
return pid;
static NOINLINE int do_rescan(void)
{
DIR *dir;
- direntry *d;
+ struct dirent *d;
int i;
struct stat s;
int need_rescan = 0;
if (rploglen < 7) {
warnx("log must have at least seven characters");
} else if (piped_pair(logpipe)) {
- warnx("cannot create pipe for log");
+ warnx("can't create pipe for log");
} else {
close_on_exec_on(logpipe.rd);
close_on_exec_on(logpipe.wr);
ndelay_on(logpipe.rd);
ndelay_on(logpipe.wr);
if (dup2(logpipe.wr, 2) == -1) {
- warnx("cannot set filedescriptor for log");
+ warnx("can't set filedescriptor for log");
} else {
pfd[0].fd = logpipe.rd;
pfd[0].events = POLLIN;
opt_s_argv[1] = utoa(bb_got_signal);
pid = spawn(opt_s_argv);
if (pid > 0) {
- /* Remebering to wait for _any_ children,
+ /* Remembering to wait for _any_ children,
* not just pid */
while (wait(NULL) != pid)
continue;
}
}
- switch (bb_got_signal) {
- case SIGHUP:
+ if (bb_got_signal == SIGHUP) {
for (i = 0; i < svnum; i++)
if (sv[i].pid)
kill(sv[i].pid, SIGTERM);
- /* Fall through */
- default: /* SIGTERM (or SIGUSRn if we are init) */
- /* Exit unless we are init */
- if (getpid() == 1)
- break;
- return (SIGHUP == bb_got_signal) ? 111 : EXIT_SUCCESS;
}
+ /* SIGHUP or SIGTERM (or SIGUSRn if we are init) */
+ /* Exit unless we are init */
+ if (getpid() != 1)
+ return (SIGHUP == bb_got_signal) ? 111 : EXIT_SUCCESS;
+ /* init continues to monitor services forever */
bb_got_signal = 0;
} /* for (;;) */
}