aboutsummaryrefslogtreecommitdiff
path: root/src/fd_util.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-11-07 19:02:53 +0100
committerMax Kellermann <max@duempel.org>2009-11-07 19:02:53 +0100
commit1573ea1485e809557bd9c8777a794d394fbc79c7 (patch)
tree220b3c5669bc7653db067d81e0ac14e19076f8ca /src/fd_util.c
parente3af0032b236dc52d4a74c4d740e57a1f6d520aa (diff)
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.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/fd_util.c b/src/fd_util.c
index b6593d91..9137e6e3 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