--- trunk/mkinitrd-magellan/busybox/runit/runsvdir.c 2010/04/29 20:38:48 983 +++ trunk/mkinitrd-magellan/busybox/runit/runsvdir.c 2010/05/30 11:32:42 984 @@ -73,7 +73,7 @@ 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) @@ -82,7 +82,7 @@ } 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) @@ -119,7 +119,7 @@ | (1 << SIGTERM) , SIG_DFL); #endif - execlp("runsv", "runsv", name, NULL); + execlp("runsv", "runsv", name, (char *) NULL); fatal2_cannot("start runsv ", name); } return pid; @@ -129,7 +129,7 @@ static NOINLINE int do_rescan(void) { DIR *dir; - direntry *d; + struct dirent *d; int i; struct stat s; int need_rescan = 0; @@ -256,14 +256,14 @@ 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; @@ -370,26 +370,24 @@ 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 (;;) */ }