aboutsummaryrefslogtreecommitdiff
path: root/misc/daemon.c
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-04-19 19:02:01 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-04-22 13:47:38 +0200
commit28a441cc577e31e95742b9ec5f1737b86749b712 (patch)
treec9ee89c8a04218b19efa6b84e627acbf8c411e19 /misc/daemon.c
parent0aa5b28a504c6f1f17b387d8147715d1496fff62 (diff)
downloadglibc-28a441cc577e31e95742b9ec5f1737b86749b712.tar
glibc-28a441cc577e31e95742b9ec5f1737b86749b712.tar.gz
glibc-28a441cc577e31e95742b9ec5f1737b86749b712.tar.bz2
glibc-28a441cc577e31e95742b9ec5f1737b86749b712.zip
misc: Convert daemon () to GNU coding style
This is nicer, and is going to be required for the following changes to reasonably stay within the 79 column limit. No functional change. Signed-off-by: Sergey Bugaev <bugaevc@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Message-Id: <20230419160207.65988-2-bugaevc@gmail.com>
Diffstat (limited to 'misc/daemon.c')
-rw-r--r--misc/daemon.c88
1 files changed, 49 insertions, 39 deletions
diff --git a/misc/daemon.c b/misc/daemon.c
index 3c73ac2ab8..14577e40ad 100644
--- a/misc/daemon.c
+++ b/misc/daemon.c
@@ -43,50 +43,60 @@ static char sccsid[] = "@(#)daemon.c 8.1 (Berkeley) 6/4/93";
int
daemon (int nochdir, int noclose)
{
- int fd;
+ int fd;
- switch (__fork()) {
- case -1:
- return (-1);
- case 0:
- break;
- default:
- _exit(0);
- }
+ switch (__fork ())
+ {
+ case -1:
+ return -1;
- if (__setsid() == -1)
- return (-1);
+ case 0:
+ break;
- if (!nochdir)
- (void)__chdir("/");
+ default:
+ _exit (0);
+ }
- if (!noclose) {
- struct __stat64_t64 st;
+ if (__setsid () == -1)
+ return -1;
- if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
- && __glibc_likely (__fstat64_time64 (fd, &st) == 0)) {
- if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0
+ if (!nochdir)
+ (void) __chdir ("/");
+
+ if (!noclose)
+ {
+ struct __stat64_t64 st;
+
+ fd = __open_nocancel (_PATH_DEVNULL, O_RDWR, 0);
+ if (fd != -1 && __glibc_likely (__fstat64_time64 (fd, &st) == 0))
+ {
+ if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0
#if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
- && (st.st_rdev
- == makedev (DEV_NULL_MAJOR, DEV_NULL_MINOR))
+ && (st.st_rdev == makedev (DEV_NULL_MAJOR, DEV_NULL_MINOR))
#endif
- ) {
- (void)__dup2(fd, STDIN_FILENO);
- (void)__dup2(fd, STDOUT_FILENO);
- (void)__dup2(fd, STDERR_FILENO);
- if (fd > 2)
- (void)__close (fd);
- } else {
- /* We must set an errno value since no
- function call actually failed. */
- __close_nocancel_nostatus (fd);
- __set_errno (ENODEV);
- return -1;
- }
- } else {
- __close_nocancel_nostatus (fd);
- return -1;
- }
- }
- return (0);
+ )
+ {
+ (void) __dup2 (fd, STDIN_FILENO);
+ (void) __dup2 (fd, STDOUT_FILENO);
+ (void) __dup2 (fd, STDERR_FILENO);
+ if (fd > 2)
+ (void) __close (fd);
+ }
+ else
+ {
+ /* We must set an errno value since no function call
+ actually failed. */
+ __close_nocancel_nostatus (fd);
+ __set_errno (ENODEV);
+ return -1;
+ }
+ }
+ else
+ {
+ __close_nocancel_nostatus (fd);
+ return -1;
+ }
+ }
+
+ return 0;
}