aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libbb.h6
-rw-r--r--libbb/vfork_daemon_rexec.c3
-rw-r--r--runit/runsv.c5
-rw-r--r--runit/sv.c2
-rw-r--r--runit/svlogd.c2
5 files changed, 7 insertions, 11 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 963e2af28..62a60f9f4 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -765,12 +765,8 @@ pid_t safe_waitpid(pid_t pid, int *wstat, int options) FAST_FUNC;
*/
int wait4pid(pid_t pid) FAST_FUNC;
pid_t wait_any_nohang(int *wstat) FAST_FUNC;
-#define wait_crashed(w) ((w) & 127)
-#define wait_exitcode(w) ((w) >> 8)
-#define wait_stopsig(w) ((w) >> 8)
-#define wait_stopped(w) (((w) & 127) == 127)
/* wait4pid(spawn(argv)) + NOFORK/NOEXEC (if configured) */
-pid_t spawn_and_wait(char **argv) FAST_FUNC;
+int spawn_and_wait(char **argv) FAST_FUNC;
struct nofork_save_area {
jmp_buf die_jmp;
const char *applet_name;
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index f64239a96..72edfc70d 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -256,8 +256,7 @@ pid_t FAST_FUNC fork_or_rexec(char **argv)
pid_t pid;
/* Maybe we are already re-execed and come here again? */
if (re_execed)
- return 0; /* child */
-
+ return 0;
pid = vfork();
if (pid < 0) /* wtf? */
bb_perror_msg_and_die("vfork");
diff --git a/runit/runsv.c b/runit/runsv.c
index 6d34dc133..5cb5d2f13 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -252,7 +252,8 @@ static unsigned custom(struct svdir *s, char c)
char a[10];
struct stat st;
- if (s->islog) return 0;
+ if (s->islog)
+ return 0;
strcpy(a, "control/?");
a[8] = c; /* replace '?' */
if (stat(a, &st) == 0) {
@@ -274,7 +275,7 @@ static unsigned custom(struct svdir *s, char c)
warn_cannot("wait for child control/?");
return 0;
}
- return !wait_exitcode(w);
+ return WEXITSTATUS(w) == 0;
}
} else {
if (errno != ENOENT)
diff --git a/runit/sv.c b/runit/sv.c
index 20e86199a..e3b9a4e31 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -337,7 +337,7 @@ static int checkscript(void)
bb_perror_msg(WARN"cannot %s child %s/check", "wait for", *service);
return 0;
}
- return !wait_exitcode(w);
+ return WEXITSTATUS(w) == 0;
}
static int check(const char *a)
diff --git a/runit/svlogd.c b/runit/svlogd.c
index 9609fa37c..25799f6be 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -281,7 +281,7 @@ static unsigned processorstop(struct logdir *ld)
if (ld->fddir == -1) return 1;
while (fchdir(ld->fddir) == -1)
pause2cannot("change directory, want processor", ld->name);
- if (wait_exitcode(wstat) != 0) {
+ if (WEXITSTATUS(wstat) != 0) {
warnx("processor failed, restart", ld->name);
ld->fnsave[26] = 't';
unlink(ld->fnsave);