diff options
author | Max Kellermann <max@duempel.org> | 2009-11-07 19:02:53 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-11-07 19:02:53 +0100 |
commit | 1573ea1485e809557bd9c8777a794d394fbc79c7 (patch) | |
tree | 220b3c5669bc7653db067d81e0ac14e19076f8ca /src/fd_util.c | |
parent | e3af0032b236dc52d4a74c4d740e57a1f6d520aa (diff) | |
download | mpd-1573ea1485e809557bd9c8777a794d394fbc79c7.tar.gz mpd-1573ea1485e809557bd9c8777a794d394fbc79c7.tar.xz mpd-1573ea1485e809557bd9c8777a794d394fbc79c7.zip |
inotify: set close-on-exec flag
Added wrapper for inotify_init1() to fd_util.c.
Diffstat (limited to 'src/fd_util.c')
-rw-r--r-- | src/fd_util.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/fd_util.c b/src/fd_util.c index b6593d919..9137e6e3b 100644 --- a/src/fd_util.c +++ b/src/fd_util.c @@ -35,6 +35,10 @@ #include <sys/socket.h> #endif +#ifdef HAVE_INOTIFY_INIT +#include <sys/inotify.h> +#endif + #ifndef WIN32 static int @@ -169,3 +173,25 @@ accept_cloexec(int fd, struct sockaddr *address, size_t *address_length_r) return ret; } + +#ifdef HAVE_INOTIFY_INIT + +int +inotify_init_cloexec(void) +{ + int fd; + +#ifdef HAVE_INOTIFY_INIT1 + fd = inotify_init1(IN_CLOEXEC); + if (fd >= 0 || errno != ENOSYS) + return fd; +#endif + + fd = inotify_init(); + if (fd >= 0) + fd_set_cloexec(fd, true); + + return fd; +} + +#endif |