aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2015-11-13 14:10:00 -0500
committerDrew DeVault <sir@cmpwn.com>2015-11-13 14:10:00 -0500
commit3dbdc40b0e123100e86aec77f77e94350ea0abbd (patch)
tree9fafb4aeeac5b792372a4b964c5bdac8de561f6a /sway
parent2cc6d39d46640ea9d44711177ae73dd19708f350 (diff)
parentf64b7e71d4ad23c6aca2038cacd196ce94493748 (diff)
Merge pull request #226 from sce/fix_get_socketpath
ipc: Store socketname in SWAYSOCK. Fixes `--get-socketpath`.
Diffstat (limited to 'sway')
-rw-r--r--sway/ipc.c10
-rw-r--r--sway/main.c11
2 files changed, 15 insertions, 6 deletions
diff --git a/sway/ipc.c b/sway/ipc.c
index d13eb87f..7ff0df01 100644
--- a/sway/ipc.c
+++ b/sway/ipc.c
@@ -52,7 +52,8 @@ void ipc_init(void) {
ipc_sockaddr = ipc_user_sockaddr();
- if (getenv("SWAYSOCK") != NULL) {
+ // We want to use socket name set by user, not existing socket from another sway instance.
+ if (getenv("SWAYSOCK") != NULL && access(getenv("SWAYSOCK"), F_OK) == -1) {
strncpy(ipc_sockaddr->sun_path, getenv("SWAYSOCK"), sizeof(ipc_sockaddr->sun_path));
}
@@ -66,7 +67,12 @@ void ipc_init(void) {
}
// Set i3 IPC socket path so that i3-msg works out of the box
- setenv("I3SOCK", ipc_sockaddr->sun_path, 1);
+ if (!getenv("I3SOCK")) {
+ setenv("I3SOCK", ipc_sockaddr->sun_path, 1);
+ }
+ if (!getenv("SWAYSOCK")) {
+ setenv("SWAYSOCK", ipc_sockaddr->sun_path, 1);
+ }
ipc_client_list = create_list();
diff --git a/sway/main.c b/sway/main.c
index a4fe5823..4afbccbd 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -107,10 +107,13 @@ int main(int argc, char **argv) {
verbose = 1;
break;
case 'p': ; // --get-socketpath
- struct sockaddr_un *ipc_sockaddr = ipc_user_sockaddr();
- fprintf(stdout, "%s\n", ipc_sockaddr->sun_path);
- free(ipc_sockaddr);
- exit(0);
+ if (getenv("SWAYSOCK")) {
+ fprintf(stdout, "%s\n", getenv("SWAYSOCK"));
+ exit(0);
+ } else {
+ fprintf(stderr, "sway socket not detected.\n");
+ exit(1);
+ }
break;
}
}