From 5fe205f2dc5931854a1126ca50bf682eca959430 Mon Sep 17 00:00:00 2001 From: Nedko Arnaudov Date: Thu, 11 Sep 2014 18:36:42 +0300 Subject: [PATCH] gladish: don't crash when unable connect to dbus --- gui/dbus.c | 9 +++++---- gui/internal.h | 4 ++-- gui/main.c | 7 +++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/gui/dbus.c b/gui/dbus.c index e1c3a6ca..eb88202b 100644 --- a/gui/dbus.c +++ b/gui/dbus.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2010,2011 Nedko Arnaudov + * Copyright (C) 2010,2011,2014 Nedko Arnaudov * ************************************************************************** * This file contains D-Bus related code @@ -28,7 +28,7 @@ #include "../cdbus/helpers.h" #include -void dbus_init(void) +bool dbus_init(void) { dbus_error_init(&cdbus_g_dbus_error); @@ -36,12 +36,13 @@ void dbus_init(void) cdbus_g_dbus_connection = dbus_bus_get(DBUS_BUS_SESSION, &cdbus_g_dbus_error); if (dbus_error_is_set(&cdbus_g_dbus_error)) { - //error_msg("dbus_bus_get() failed"); - //error_msg(cdbus_g_dbus_error.message); + log_error("Cannot connect to session bus: %s", cdbus_g_dbus_error.message); dbus_error_free(&cdbus_g_dbus_error); + return false; } dbus_connection_setup_with_g_main(cdbus_g_dbus_connection, NULL); + return true; } void dbus_uninit(void) diff --git a/gui/internal.h b/gui/internal.h index c134488c..afcf27bc 100644 --- a/gui/internal.h +++ b/gui/internal.h @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2010 Nedko Arnaudov + * Copyright (C) 2010,2014 Nedko Arnaudov * ************************************************************************** * This file contains declarations of internal stuff used to glue gui modules together @@ -30,7 +30,7 @@ #include "common.h" /* dbus.c */ -void dbus_init(void); +bool dbus_init(void); void dbus_uninit(void); /* control.c */ diff --git a/gui/main.c b/gui/main.c index 5c35d603..f26f7db4 100644 --- a/gui/main.c +++ b/gui/main.c @@ -2,7 +2,7 @@ /* * LADI Session Handler (ladish) * - * Copyright (C) 2008,2009,2010,2011 Nedko Arnaudov + * Copyright (C) 2008,2009,2010,2011,2014 Nedko Arnaudov * ************************************************************************** * This file contains the code that implements main() and other top-level functionality @@ -92,7 +92,10 @@ int main(int argc, char** argv) gtk_init(&argc, &argv); - dbus_init(); + if (!dbus_init()) + { + return 1; + } if (!conf_proxy_init()) {