X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fpush.c;h=eb6011a970248119648878629daaddbcf5dcaa80;hb=f33f12af33361e5d688cd1700c1ee03af5988fd9;hp=b2517b3a482fb2a5b5254ac0e164cd64451c7d06;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1;p=mmh diff --git a/sbr/push.c b/sbr/push.c index b2517b3..eb6011a 100644 --- a/sbr/push.c +++ b/sbr/push.c @@ -1,10 +1,10 @@ /* - * push.c -- push a fork into the background - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** push.c -- push a fork into the background +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #include #include @@ -15,34 +15,30 @@ void push(void) { pid_t pid; - int i; - for (i = 0; (pid = fork()) == -1 && i < 5; i++) - sleep (5); + switch (pid = fork()) { + case -1: + /* fork error */ + advise(NULL, "unable to fork, so can't push..."); + break; - switch (pid) { - case -1: - /* fork error */ - advise (NULL, "unable to fork, so can't push..."); - break; - - case 0: - /* child, block a few signals and continue */ - SIGNAL (SIGHUP, SIG_IGN); - SIGNAL (SIGINT, SIG_IGN); - SIGNAL (SIGQUIT, SIG_IGN); - SIGNAL (SIGTERM, SIG_IGN); + case 0: + /* child, block a few signals and continue */ + SIGNAL(SIGHUP, SIG_IGN); + SIGNAL(SIGINT, SIG_IGN); + SIGNAL(SIGQUIT, SIG_IGN); + SIGNAL(SIGTERM, SIG_IGN); #ifdef SIGTSTP - SIGNAL (SIGTSTP, SIG_IGN); - SIGNAL (SIGTTIN, SIG_IGN); - SIGNAL (SIGTTOU, SIG_IGN); + SIGNAL(SIGTSTP, SIG_IGN); + SIGNAL(SIGTTIN, SIG_IGN); + SIGNAL(SIGTTOU, SIG_IGN); #endif - freopen ("/dev/null", "r", stdin); - freopen ("/dev/null", "w", stdout); - break; + freopen("/dev/null", "r", stdin); + freopen("/dev/null", "w", stdout); + break; - default: - /* parent, just exit */ - done (0); + default: + /* parent, just exit */ + done(0); } }