diff options
author | nyorain <nyorain@gmail.com> | 2017-07-11 17:12:53 +0200 |
---|---|---|
committer | nyorain <nyorain@gmail.com> | 2017-07-11 17:12:53 +0200 |
commit | 20888fbb5e19e2bd7e45afb6fdbc2c1ed8cc769d (patch) | |
tree | a50906cc4549b44603687470aff889523db3047b | |
parent | Add timeout; Fix receive loop & style issues (diff) | |
download | sway-20888fbb5e19e2bd7e45afb6fdbc2c1ed8cc769d.tar.gz sway-20888fbb5e19e2bd7e45afb6fdbc2c1ed8cc769d.tar.zst sway-20888fbb5e19e2bd7e45afb6fdbc2c1ed8cc769d.zip |
Close fd in clipboard request
-rw-r--r-- | sway/ipc-server.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sway/ipc-server.c b/sway/ipc-server.c index 937382af..829b8bf3 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c | |||
@@ -59,6 +59,7 @@ struct get_pixels_request { | |||
59 | struct get_clipboard_request { | 59 | struct get_clipboard_request { |
60 | struct ipc_client *client; | 60 | struct ipc_client *client; |
61 | json_object *json; | 61 | json_object *json; |
62 | int fd; | ||
62 | struct wlc_event_source *fd_event_source; | 63 | struct wlc_event_source *fd_event_source; |
63 | struct wlc_event_source *timer_event_source; | 64 | struct wlc_event_source *timer_event_source; |
64 | char *type; | 65 | char *type; |
@@ -354,6 +355,7 @@ static void release_clipboard_request(struct get_clipboard_request *req) { | |||
354 | free(req->buf); | 355 | free(req->buf); |
355 | wlc_event_source_remove(req->fd_event_source); | 356 | wlc_event_source_remove(req->fd_event_source); |
356 | wlc_event_source_remove(req->timer_event_source); | 357 | wlc_event_source_remove(req->timer_event_source); |
358 | close(req->fd); | ||
357 | free(req); | 359 | free(req); |
358 | } | 360 | } |
359 | 361 | ||
@@ -534,6 +536,7 @@ void ipc_get_clipboard(struct ipc_client *client, char *buf) { | |||
534 | req->pending = pending; | 536 | req->pending = pending; |
535 | req->buf_position = 0; | 537 | req->buf_position = 0; |
536 | req->buf_size = 512; | 538 | req->buf_size = 512; |
539 | req->fd = pipes[0]; | ||
537 | req->timer_event_source = wlc_event_loop_add_timer(ipc_selection_timer_cb, req); | 540 | req->timer_event_source = wlc_event_loop_add_timer(ipc_selection_timer_cb, req); |
538 | req->fd_event_source = wlc_event_loop_add_fd(pipes[0], | 541 | req->fd_event_source = wlc_event_loop_add_fd(pipes[0], |
539 | WLC_EVENT_READABLE | WLC_EVENT_ERROR | WLC_EVENT_HANGUP, | 542 | WLC_EVENT_READABLE | WLC_EVENT_ERROR | WLC_EVENT_HANGUP, |