X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fpush.c;h=eb6011a970248119648878629daaddbcf5dcaa80;hb=bec79382afc185947279c0f3c724c5983944ee7f;hp=70fba6c702a8ed70c7b48d753f6c643e1830d107;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4;p=mmh diff --git a/sbr/push.c b/sbr/push.c index 70fba6c..eb6011a 100644 --- a/sbr/push.c +++ b/sbr/push.c @@ -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); } }