mirror of
https://cagebreak.project-repo.co/cagebreak.git
synced 2026-08-20 12:34:18 +02:00
Adjust ipc
- Handle SIGPIPE - Change syntax to null-terminated strings
This commit is contained in:
parent
cce8121595
commit
ebbc3f2431
2 changed files with 11 additions and 2 deletions
|
|
@ -321,6 +321,8 @@ main(int argc, char *argv[]) {
|
|||
wl_event_loop_add_signal(event_loop, SIGTERM, handle_signal, &server);
|
||||
sigalrm_source =
|
||||
wl_event_loop_add_signal(event_loop, SIGALRM, handle_signal, &server);
|
||||
sigalrm_source =
|
||||
wl_event_loop_add_signal(event_loop, SIGPIPE, handle_signal, &server);
|
||||
server.event_loop = event_loop;
|
||||
|
||||
backend = wlr_backend_autocreate(server.wl_display);
|
||||
|
|
|
|||
11
ipc_server.c
11
ipc_server.c
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
static const char ipc_magic[] = {'c', 'g', '-', 'i', 'p', 'c'};
|
||||
|
||||
#define IPC_HEADER_SIZE (sizeof(ipc_magic) + 4)
|
||||
#define IPC_HEADER_SIZE sizeof(ipc_magic)
|
||||
|
||||
static void
|
||||
handle_display_destroy(struct wl_listener *listener, void *data) {
|
||||
|
|
@ -134,6 +134,9 @@ ipc_client_handle_writable(int client_fd, uint32_t mask, void *data) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
if(fcntl(client->fd, F_GETFD) == -1) {
|
||||
return 0;
|
||||
}
|
||||
ssize_t written =
|
||||
write(client->fd, client->write_buffer, client->write_buffer_len);
|
||||
|
||||
|
|
@ -332,7 +335,9 @@ ipc_send_event_client(struct cg_ipc_client *client, const char *payload,
|
|||
char data[IPC_HEADER_SIZE];
|
||||
|
||||
memcpy(data, ipc_magic, sizeof(ipc_magic));
|
||||
memcpy(data + sizeof(ipc_magic), &payload_length, sizeof(payload_length));
|
||||
|
||||
// Terminating null character
|
||||
payload_length+=1;
|
||||
|
||||
while(client->write_buffer_len + IPC_HEADER_SIZE + payload_length >=
|
||||
client->write_buffer_size) {
|
||||
|
|
@ -361,6 +366,8 @@ ipc_send_event_client(struct cg_ipc_client *client, const char *payload,
|
|||
memcpy(client->write_buffer + client->write_buffer_len, payload,
|
||||
payload_length);
|
||||
client->write_buffer_len += payload_length;
|
||||
memcpy(client->write_buffer + client->write_buffer_len, "\0", 1);
|
||||
client->write_buffer_len += 1;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue