summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gdm-wayland-session.c8
-rw-r--r--daemon/gdm-x-session.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/daemon/gdm-wayland-session.c b/daemon/gdm-wayland-session.c
index b2f38088..b6eccc21 100644
--- a/daemon/gdm-wayland-session.c
+++ b/daemon/gdm-wayland-session.c
@@ -95,6 +95,7 @@ spawn_bus (State *state,
GInputStream *input_stream = NULL;
GDataInputStream *data_stream = NULL;
GError *error = NULL;
+ const char *bus_env = NULL;
char *bus_address_fd_string = NULL;
char *bus_address = NULL;
gsize bus_address_size;
@@ -105,6 +106,13 @@ spawn_bus (State *state,
g_debug ("Running session message bus");
+ bus_env = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
+ if (bus_env != NULL) {
+ g_debug ("session message bus already running, not starting another one");
+ state->bus_address = g_strdup (bus_env);
+ return TRUE;
+ }
+
ret = g_unix_open_pipe (pipe_fds, FD_CLOEXEC, &error);
if (!ret) {
diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
index 3cc7d405..bcb884ce 100644
--- a/daemon/gdm-x-session.c
+++ b/daemon/gdm-x-session.c
@@ -367,6 +367,7 @@ spawn_bus (State *state,
GInputStream *input_stream = NULL;
GDataInputStream *data_stream = NULL;
GError *error = NULL;
+ const char *bus_env = NULL;
char *bus_address_fd_string;
char *bus_address = NULL;
gsize bus_address_size;
@@ -377,6 +378,13 @@ spawn_bus (State *state,
g_debug ("Running session message bus");
+ bus_env = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
+ if (bus_env != NULL) {
+ g_debug ("session message bus already running, not starting another one");
+ state->bus_address = g_strdup (bus_env);
+ return TRUE;
+ }
+
ret = g_unix_open_pipe (pipe_fds, FD_CLOEXEC, &error);
if (!ret) {