stop using non-standard macro, use WEXITSTATUS instead
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 7 Jun 2009 14:02:00 +0000 (16:02 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 7 Jun 2009 14:02:00 +0000 (16:02 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/libbb.h
libbb/vfork_daemon_rexec.c
runit/runsv.c
runit/sv.c
runit/svlogd.c

index 963e2af..62a60f9 100644 (file)
@@ -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;
index f64239a..72edfc7 100644 (file)
@@ -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");
index 6d34dc1..5cb5d2f 100644 (file)
@@ -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)
index 20e8619..e3b9a4e 100644 (file)
@@ -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)
index 9609fa3..25799f6 100644 (file)
@@ -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);