From 3b29783dc8f0e856afce7a9edf10c0ca4d12f284 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 23 Apr 2012 12:10:45 +0300 Subject: os: define SOCK_CLOEXEC on Linux If it's not already defined, and we are on Linux, #define it. This gets rid of a load of #ifdefs. This should also allow to use it when the kernel supports it, but the libc does not define it. Signed-off-by: Pekka Paalanen --- src/wayland-os.c | 2 -- src/wayland-os.h | 13 +++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/wayland-os.c b/src/wayland-os.c index 8f75976..4db8050 100644 --- a/src/wayland-os.c +++ b/src/wayland-os.c @@ -55,13 +55,11 @@ wl_os_socket_cloexec(int domain, int type, int protocol) { int fd; -#ifdef SOCK_CLOEXEC fd = socket(domain, type | SOCK_CLOEXEC, protocol); if (fd >= 0) return fd; if (errno != EINVAL) return -1; -#endif fd = socket(domain, type, protocol); return set_cloexec_or_close(fd); diff --git a/src/wayland-os.h b/src/wayland-os.h index 49adc2b..a57b3aa 100644 --- a/src/wayland-os.h +++ b/src/wayland-os.h @@ -26,4 +26,17 @@ int wl_os_socket_cloexec(int domain, int type, int protocol); +/* + * The following are for wayland-os.c and the unit tests. + * Do not use them elsewhere. + */ + +#ifdef __linux__ + +#ifndef SOCK_CLOEXEC +#define SOCK_CLOEXEC 02000000 +#endif + +#endif /* __linux__ */ + #endif -- cgit v1.2.3-70-g09d2