From 321f8dd75df79a714b17a0f2cd16644ccc4febf9 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 10 Nov 2017 12:53:37 +0000 Subject: More accurate exit code and clearer error messages for s6-svc and s6-svscanctl --- src/supervision/s6-svscanctl.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/supervision/s6-svscanctl.c') diff --git a/src/supervision/s6-svscanctl.c b/src/supervision/s6-svscanctl.c index 2794290..3339c67 100644 --- a/src/supervision/s6-svscanctl.c +++ b/src/supervision/s6-svscanctl.c @@ -13,7 +13,6 @@ int main (int argc, char const *const *argv) { char data[DATASIZE] ; unsigned int datalen = 0 ; - int r ; PROG = "s6-svscanctl" ; { subgetopt_t l = SUBGETOPT_ZERO ; @@ -51,8 +50,11 @@ int main (int argc, char const *const *argv) } if (!argc) dieusage() ; - r = s6_svc_writectl(argv[0], S6_SVSCAN_CTLDIR, data, datalen) ; - if (r < 0) strerr_diefu2sys(111, "control ", argv[0]) ; - else if (!r) strerr_diefu3x(100, "control ", argv[0], ": supervisor not listening") ; + switch (s6_svc_writectl(argv[0], S6_SVSCAN_CTLDIR, data, datalen)) + { + case -1 : strerr_diefu2sys(111, "control ", argv[0]) ; + case -2 : strerr_dief3sys(100, "something is wrong with the ", argv[0], "/" S6_SVSCAN_CTLDIR " directory. errno reported") ; + case 0 : strerr_diefu3x(100, "control ", argv[0], ": supervisor not listening") ; + } return 0 ; } -- cgit v1.2.3