From 6a434268a5937af0521d9daf5d2952e85c97ffd9 Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Thu, 26 Dec 2024 20:55:52 -0500 Subject: [PATCH] ipc: Explicitly account for failure in the early stages of the connection (eliminates annoying compiler warning) --- src/daemon.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/daemon.c b/src/daemon.c index 9033372..9410844 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -79,15 +79,29 @@ static void add_listener(int con) for (i = 0; i < config->nr_layers; i++) { if (active_kbd->layer_state[i].active) { + ssize_t ret; struct layer *layer = &config->layers[i]; - write(con, layer->type == LT_LAYOUT ? "/" : "+", 1); - write(con, layer->name, strlen(layer->name)); - write(con, "\n", 1); + ret = write(con, layer->type == LT_LAYOUT ? "/" : "+", 1); + if (ret < 0) + goto fail; + + ret = write(con, layer->name, strlen(layer->name)); + if (ret < 0) + goto fail; + + ret = write(con, "\n", 1); + if (ret < 0) + goto fail; } } } + listeners[nr_listeners++] = con; + return; +fail: + close(con); + return; } static void on_layer_change(const struct keyboard *kbd, const struct layer *layer, uint8_t state)