From: Mark Wooding Date: Tue, 5 Sep 2017 09:34:05 +0000 (+0100) Subject: uslip/uslip.c: Be more reliable about tidying up. X-Git-Tag: 1.5.0~111 X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/commitdiff_plain/6734d5281b0eff7a390a50a813edc8abeefc2e2e?ds=inline;hp=8d1d183ef5293bcd1e68dd4154b00a8a64d33fa8 uslip/uslip.c: Be more reliable about tidying up. Trap `SIGHUP' because shells sometimes send it to us during testing; and don't give up on select(2) because of `EINTR'. --- diff --git a/uslip/uslip.c b/uslip/uslip.c index 66cc0797..629da123 100644 --- a/uslip/uslip.c +++ b/uslip/uslip.c @@ -605,6 +605,7 @@ static void slipif(void) sig_init(&sel); sig_add(&term, SIGTERM, slip_term, &fd); + sig_add(&term, SIGHUP, slip_term, &fd); sig_add(&term, SIGINT, slip_term, &fd); initqueue(&q_in); @@ -620,7 +621,7 @@ static void slipif(void) /* --- Main loop --- */ while (reasons) { - if (sel_select(&sel)) + if (sel_select(&sel) && errno != EINTR) die(EXIT_FAILURE, "select: %s", strerror(errno)); }