diff options
author | sghctoma <sghctoma@gmail.com> | 2018-09-26 20:10:53 +0200 |
---|---|---|
committer | sghctoma <sghctoma@gmail.com> | 2018-09-26 20:10:53 +0200 |
commit | 2f258eff6fd2c89a94caa658c1ea22beb76d728a (patch) | |
tree | ee7b21a8980b30a8524e44c43e0cce6319ba9b4a | |
parent | Add _C11_SOURCE feature test macro on FreeBSD (diff) | |
download | sway-2f258eff6fd2c89a94caa658c1ea22beb76d728a.tar.gz sway-2f258eff6fd2c89a94caa658c1ea22beb76d728a.tar.zst sway-2f258eff6fd2c89a94caa658c1ea22beb76d728a.zip |
Make sway/ipc-server.c POSIX 2001 compliant
This commit replaces the non-standard SOCK_NONBLOCK and SOCK_CLOEXEC
flags with two fcntl calls. This makes the file POSIX 2001 compliant,
thus it is no longer necessary to conditionally define, or use internal
(__BSD_VISIBLE) feature test macros.
-rw-r--r-- | sway/ipc-server.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sway/ipc-server.c b/sway/ipc-server.c index 99959c97..2d915502 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c | |||
@@ -1,8 +1,5 @@ | |||
1 | // See https://i3wm.org/docs/ipc.html for protocol information | 1 | // See https://i3wm.org/docs/ipc.html for protocol information |
2 | #ifndef __FreeBSD__ | 2 | #define _POSIX_C_SOURCE 200112L |
3 | // Any value will hide SOCK_CLOEXEC on FreeBSD (__BSD_VISIBLE=0) | ||
4 | #define _XOPEN_SOURCE 700 | ||
5 | #endif | ||
6 | #ifdef __linux__ | 3 | #ifdef __linux__ |
7 | #include <linux/input-event-codes.h> | 4 | #include <linux/input-event-codes.h> |
8 | #elif __FreeBSD__ | 5 | #elif __FreeBSD__ |
@@ -89,10 +86,16 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) { | |||
89 | } | 86 | } |
90 | 87 | ||
91 | void ipc_init(struct sway_server *server) { | 88 | void ipc_init(struct sway_server *server) { |
92 | ipc_socket = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0); | 89 | ipc_socket = socket(AF_UNIX, SOCK_STREAM, 0); |
93 | if (ipc_socket == -1) { | 90 | if (ipc_socket == -1) { |
94 | sway_abort("Unable to create IPC socket"); | 91 | sway_abort("Unable to create IPC socket"); |
95 | } | 92 | } |
93 | if (fcntl(ipc_socket, F_SETFD, FD_CLOEXEC) == -1) { | ||
94 | sway_abort("Unable to set CLOEXEC on IPC socket"); | ||
95 | } | ||
96 | if (fcntl(ipc_socket, F_SETFL, O_NONBLOCK) == -1) { | ||
97 | sway_abort("Unable to set NONBLOCK on IPC socket"); | ||
98 | } | ||
96 | 99 | ||
97 | ipc_sockaddr = ipc_user_sockaddr(); | 100 | ipc_sockaddr = ipc_user_sockaddr(); |
98 | 101 | ||