From 253204efb9517181c386036cae5ea5595a26b55a Mon Sep 17 00:00:00 2001 From: "S. Christoffer Eliesen" Date: Thu, 12 Nov 2015 17:19:58 +0100 Subject: ipc: Put socket into proper user runtime dir. --- sway/ipc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'sway') diff --git a/sway/ipc.c b/sway/ipc.c index 8935147d..d13eb87f 100644 --- a/sway/ipc.c +++ b/sway/ipc.c @@ -94,14 +94,15 @@ struct sockaddr_un *ipc_user_sockaddr(void) { } ipc_sockaddr->sun_family = AF_UNIX; - int path_size = sizeof(ipc_sockaddr->sun_path); - // Without logind: - int allocating_path_size = snprintf(ipc_sockaddr->sun_path, path_size, - "/tmp/sway-ipc.%i.%i.sock", getuid(), getpid()); - - if (allocating_path_size >= path_size) { + // Env var typically set by logind, e.g. "/run/user/" + const char *dir = getenv("XDG_RUNTIME_DIR"); + if (!dir) { + dir = "/tmp"; + } + if (path_size <= snprintf(ipc_sockaddr->sun_path, path_size, + "%s/sway-ipc.%i.%i.sock", dir, getuid(), getpid())) { sway_abort("socket path won't fit into ipc_sockaddr->sun_path"); } -- cgit v1.2.3-70-g09d2