diff options
author | Klemens Nanni <kn@cvs.openbsd.org> | 2022-11-27 15:19:39 +0000 |
---|---|---|
committer | Klemens Nanni <kn@cvs.openbsd.org> | 2022-11-27 15:19:39 +0000 |
commit | 8d0f9599fd889f726d8e8a2cf788fb85818b8888 (patch) | |
tree | 86f233efda419cb68e7c52936aaf855a29634dab /sbin/slaacd | |
parent | ef4a78476e49dfd51ff324e05d273504ab2bd492 (diff) |
Provide more accurate lock error message
When started manuall from single-user mode (/ still read-only), the current
error is misleading:
# slaacd -dv
slaacd: already running
The lock was specifically added to prevent multiple instances in the
installer, which discards the error message entirely anyway.
Retain the useful EAGAIN/"already running" message, but otherwise print the
real error reason:
# slaacd -dv
slaacd: /dev/slaacd.lock: Read-only file system
Feedback OK deraadt millert
Diffstat (limited to 'sbin/slaacd')
-rw-r--r-- | sbin/slaacd/slaacd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sbin/slaacd/slaacd.c b/sbin/slaacd/slaacd.c index 4326492c545..816afff65e9 100644 --- a/sbin/slaacd/slaacd.c +++ b/sbin/slaacd/slaacd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: slaacd.c,v 1.66 2022/09/15 07:59:59 florian Exp $ */ +/* $OpenBSD: slaacd.c,v 1.67 2022/11/27 15:19:38 kn Exp $ */ /* * Copyright (c) 2017 Florian Obser <florian@openbsd.org> @@ -179,8 +179,11 @@ main(int argc, char *argv[]) errx(1, "need root privileges"); lockfd = open(_PATH_LOCKFILE, O_CREAT|O_RDWR|O_EXLOCK|O_NONBLOCK, 0600); - if (lockfd == -1) - errx(1, "already running"); + if (lockfd == -1) { + if (errno == EAGAIN) + errx(1, "already running"); + err(1, "%s", _PATH_LOCKFILE); + } /* Check for assigned daemon user */ if (getpwnam(SLAACD_USER) == NULL) |