diff mbox series

[v2,6/7] ipc: create sockets in RUNTIME_DIRECTORY

Message ID 20231025055142.54505-7-felix.moessbauer@siemens.com
State Accepted
Headers show
Series Rework socket creation to better integrate with systemd | expand

Commit Message

Felix Moessbauer Oct. 25, 2023, 5:51 a.m. UTC
The RUNTIME_DIRECTORY variable is set by systemd (when setting
RuntimeDirectory=) and points to a systemd managed folder where sockets
shall be created. In case this variable is set, we create the IPC
sockets there. If it is not set, continue with the existing logic.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 ipc/network_ipc.c         | 12 +++++++-----
 ipc/progress_ipc.c        | 13 ++++++++-----
 tools/swupdate-progress.c |  3 +++
 3 files changed, 18 insertions(+), 10 deletions(-)
diff mbox series

Patch

diff --git a/ipc/network_ipc.c b/ipc/network_ipc.c
index 0876c88..e2fff78 100644
--- a/ipc/network_ipc.c
+++ b/ipc/network_ipc.c
@@ -27,11 +27,13 @@  char* SOCKET_CTRL_PATH = NULL;
 
 char *get_ctrl_socket(void) {
 	if (!SOCKET_CTRL_PATH || !strlen(SOCKET_CTRL_PATH)) {
-		const char *tmpdir = getenv("TMPDIR");
-		if (!tmpdir)
-			tmpdir = "/tmp";
-
-		if (asprintf(&SOCKET_CTRL_PATH, "%s/%s", tmpdir, SOCKET_CTRL_DEFAULT) == -1)
+		const char *socketdir = getenv("RUNTIME_DIRECTORY");
+		if(!socketdir){
+			socketdir = getenv("TMPDIR");
+		}
+		if (!socketdir)
+			socketdir = "/tmp";
+		if (asprintf(&SOCKET_CTRL_PATH, "%s/%s", socketdir, SOCKET_CTRL_DEFAULT) == -1)
 			return (char *)"/tmp/"SOCKET_CTRL_DEFAULT;
 	}
 
diff --git a/ipc/progress_ipc.c b/ipc/progress_ipc.c
index 745dc44..5738bf6 100644
--- a/ipc/progress_ipc.c
+++ b/ipc/progress_ipc.c
@@ -26,11 +26,14 @@  char *SOCKET_PROGRESS_PATH = NULL;
 
 char *get_prog_socket(void) {
 	if (!SOCKET_PROGRESS_PATH || !strlen(SOCKET_PROGRESS_PATH)) {
-		const char *tmpdir = getenv("TMPDIR");
-		if (!tmpdir)
-			tmpdir = "/tmp";
-
-		if (asprintf(&SOCKET_PROGRESS_PATH, "%s/%s", tmpdir, SOCKET_PROGRESS_DEFAULT) == -1)
+		const char *socketdir = getenv("RUNTIME_DIRECTORY");
+		if(!socketdir){
+			socketdir = getenv("TMPDIR");
+		}
+		if(!socketdir){
+			socketdir = "/tmp";
+		}
+		if (asprintf(&SOCKET_PROGRESS_PATH, "%s/%s", socketdir, SOCKET_PROGRESS_DEFAULT) == -1)
 			return (char *)"/tmp/"SOCKET_PROGRESS_DEFAULT;
 	}
 
diff --git a/tools/swupdate-progress.c b/tools/swupdate-progress.c
index 48a4448..a91b252 100644
--- a/tools/swupdate-progress.c
+++ b/tools/swupdate-progress.c
@@ -273,6 +273,9 @@  int main(int argc, char **argv)
 		
 	if (opt_p) {
 		rundir = getenv("PSPLASH_FIFO_DIR");
+		if(!rundir){
+			rundir = getenv("RUNTIME_DIRECTORY");
+		}
 		if (!rundir)
 			rundir = "/run";
 		snprintf(psplash_pipe_path, sizeof(psplash_pipe_path), "%s/psplash_fifo", rundir);