We are making POSIX signal support a requirement.
[mmh] / sbr / context_save.c
index e62aca8..d1371d0 100644 (file)
@@ -40,7 +40,7 @@ context_save(void)
        sigaddset(&set, SIGINT);
        sigaddset(&set, SIGQUIT);
        sigaddset(&set, SIGTERM);
-       SIGPROCMASK(SIG_BLOCK, &set, &oset);
+       sigprocmask(SIG_BLOCK, &set, &oset);
 
        if (!(out = lkfopen(ctxpath, "w")))
                adios(ctxpath, "unable to write");
@@ -49,7 +49,7 @@ context_save(void)
                        fprintf(out, "%s: %s\n", np->n_name, np->n_field);
        lkfclose(out, ctxpath);
 
-       SIGPROCMASK(SIG_SETMASK, &oset, &set); /* reset the signal mask */
+       sigprocmask(SIG_SETMASK, &oset, &set); /* reset the signal mask */
 
        if (action == 0)
                _exit(0);    /* we are child, time to die */
@@ -68,27 +68,23 @@ context_save(void)
 static int
 m_chkids(void)
 {
-       int i;
        pid_t pid;
 
        if (getuid() == geteuid())
                return (-1);
 
-       for (i = 0; (pid = fork()) == -1 && i < 5; i++)
-               sleep(5);
+       switch (pid = fork()) {
+       case -1:
+               break;
 
-       switch (pid) {
-               case -1:
-                       break;
+       case 0:
+               setgid(getgid());
+               setuid(getuid());
+               break;
 
-               case 0:
-                       setgid(getgid());
-                       setuid(getuid());
-                       break;
-
-               default:
-                       pidwait(pid, -1);
-                       break;
+       default:
+               pidwait(pid, -1);
+               break;
        }
 
        return pid;