diff options
-rw-r--r-- | daemon/gdm-wayland-session.c | 8 | ||||
-rw-r--r-- | daemon/gdm-x-session.c | 8 |
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) { |