From 0c4a9b62c2f6fdfe28b6aa2655399b5d90022320 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 25 Apr 2022 21:16:59 +0200 Subject: [PATCH] initctl: allow client_connect() to return error This lets any callers of client_connect() decide what to do wrt. error recovery and fallback mechanisms. E.g., reboot may want to check if it's in sulogin mode, or fall back to sending signals to PID 1. Signed-off-by: Joachim Wiberg --- src/client.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/client.c b/src/client.c index 2a9b4ae2..d05be6a6 100644 --- a/src/client.c +++ b/src/client.c @@ -39,11 +39,17 @@ int client_connect(void) }; sd = socket(AF_UNIX, SOCK_SEQPACKET, 0); - if (-1 == sd) - err(1, "Failed creating UNIX domain socket"); + if (-1 == sd) { + warn("Failed creating UNIX domain socket"); + return -1; + } - if (connect(sd, (struct sockaddr*)&sun, sizeof(sun)) == -1) - err(1, "Failed connecting to finit"); + if (connect(sd, (struct sockaddr*)&sun, sizeof(sun)) == -1) { + if (errno != ENOENT) + warnx("Failed connecting to finit"); + close(sd); + return -1; + } return sd; }