mirror of
https://github.com/swaywm/sway.git
synced 2024-12-30 17:06:40 +01:00
Merge pull request #1153 from SirCmpwn/fix-1152
Fix dangling file descriptors (fixes #1152)
This commit is contained in:
commit
4e12bf64ef
1 changed files with 3 additions and 3 deletions
|
@ -161,7 +161,8 @@ int ipc_handle_connection(int fd, uint32_t mask, void *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int flags;
|
int flags;
|
||||||
if ((flags=fcntl(client_fd, F_GETFD)) == -1 || fcntl(client_fd, F_SETFD, flags|FD_CLOEXEC) == -1) {
|
if ((flags = fcntl(client_fd, F_GETFD)) == -1
|
||||||
|
|| fcntl(client_fd, F_SETFD, flags|FD_CLOEXEC) == -1) {
|
||||||
sway_log_errno(L_ERROR, "Unable to set CLOEXEC on IPC client socket");
|
sway_log_errno(L_ERROR, "Unable to set CLOEXEC on IPC client socket");
|
||||||
close(client_fd);
|
close(client_fd);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -193,13 +194,12 @@ int ipc_client_handle_readable(int client_fd, uint32_t mask, void *data) {
|
||||||
|
|
||||||
if (mask & WLC_EVENT_ERROR) {
|
if (mask & WLC_EVENT_ERROR) {
|
||||||
sway_log(L_ERROR, "IPC Client socket error, removing client");
|
sway_log(L_ERROR, "IPC Client socket error, removing client");
|
||||||
client->fd = -1;
|
|
||||||
ipc_client_disconnect(client);
|
ipc_client_disconnect(client);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & WLC_EVENT_HANGUP) {
|
if (mask & WLC_EVENT_HANGUP) {
|
||||||
client->fd = -1;
|
sway_log(L_DEBUG, "Client %d hung up", client->fd);
|
||||||
ipc_client_disconnect(client);
|
ipc_client_disconnect(client);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue