diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2017-04-13 15:32:16 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2017-04-13 15:32:16 +0000 |
commit | 2b75fe3346374e97fa5c088ca700f9658b564b00 (patch) | |
tree | f04d1a06e81e6b201fbbdbef17c9625095c0995c /usr.sbin/rebound | |
parent | c44716fe39cec016f3bc03c0fc9b7ce91b34253f (diff) |
moving some code into a switch meant that break no longer stopped the loop.
try harder with a goto. diagnosis and original fix by tb.
Diffstat (limited to 'usr.sbin/rebound')
-rw-r--r-- | usr.sbin/rebound/rebound.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.sbin/rebound/rebound.c b/usr.sbin/rebound/rebound.c index 9cba6618028..a33029cd9bc 100644 --- a/usr.sbin/rebound/rebound.c +++ b/usr.sbin/rebound/rebound.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rebound.c,v 1.81 2017/04/06 21:16:14 tedu Exp $ */ +/* $OpenBSD: rebound.c,v 1.82 2017/04/13 15:32:15 tedu Exp $ */ /* * Copyright (c) 2015 Ted Unangst <tedu@openbsd.org> * @@ -848,7 +848,7 @@ monitorloop(int ud, int ld, int ud6, int ld6, const char *confname) logmsg(LOG_INFO, "received HUP, restarting"); hupped = 1; if (childdead) - break; + goto doublebreak; kill(child, SIGHUP); } else if (kev.ident == SIGTERM) { /* good bye */ @@ -862,7 +862,7 @@ monitorloop(int ud, int ld, int ud6, int ld6, const char *confname) logmsg(LOG_INFO, "observed child exit"); childdead = 1; if (hupped) - break; + goto doublebreak; memset(&ts, 0, sizeof(ts)); ts.tv_sec = 1; timeout = &ts; @@ -872,6 +872,7 @@ monitorloop(int ud, int ld, int ud6, int ld6, const char *confname) break; } } +doublebreak: wait(NULL); } return 1; |