X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fpush.c;h=eb6011a970248119648878629daaddbcf5dcaa80;hp=d664927b60d588bfbe60ae7d71e670b0521b071b;hb=dfa0332c4e6144699dedd5c9795219adc0f9c0d2;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/sbr/push.c b/sbr/push.c index d664927..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); } }