From 5e8a55ff99dd0236348e1954f77f15f35f91c46e Mon Sep 17 00:00:00 2001 From: kiwi Date: Tue, 3 Jul 2007 15:35:14 +0000 Subject: [PATCH] fix potential segfaults if dbus is not working SVN revision: 30575 --- src/bin/e_fm_main.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/bin/e_fm_main.c b/src/bin/e_fm_main.c index f7489a14a..763dab19b 100644 --- a/src/bin/e_fm_main.c +++ b/src/bin/e_fm_main.c @@ -214,25 +214,27 @@ main(int argc, char **argv) _e_storage_volume_edd_init(); e_dbus_init(); _e_dbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM); - - e_hal_manager_get_all_devices(_e_dbus_conn, _e_dbus_cb_dev_all, NULL); - e_hal_manager_find_device_by_capability(_e_dbus_conn, "storage", - _e_dbus_cb_dev_store, NULL); - e_hal_manager_find_device_by_capability(_e_dbus_conn, "volume", - _e_dbus_cb_dev_vol, NULL); - - e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", - "/org/freedesktop/Hal/Manager", - "org.freedesktop.Hal.Manager", - "DeviceAdded", _e_dbus_cb_dev_add, NULL); - e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", - "/org/freedesktop/Hal/Manager", - "org.freedesktop.Hal.Manager", - "DeviceRemoved", _e_dbus_cb_dev_del, NULL); - e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", - "/org/freedesktop/Hal/Manager", - "org.freedesktop.Hal.Manager", - "NewCapability", _e_dbus_cb_cap_add, NULL); + if (_e_dbus_conn) + { + e_hal_manager_get_all_devices(_e_dbus_conn, _e_dbus_cb_dev_all, NULL); + e_hal_manager_find_device_by_capability(_e_dbus_conn, "storage", + _e_dbus_cb_dev_store, NULL); + e_hal_manager_find_device_by_capability(_e_dbus_conn, "volume", + _e_dbus_cb_dev_vol, NULL); + + e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", + "/org/freedesktop/Hal/Manager", + "org.freedesktop.Hal.Manager", + "DeviceAdded", _e_dbus_cb_dev_add, NULL); + e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", + "/org/freedesktop/Hal/Manager", + "org.freedesktop.Hal.Manager", + "DeviceRemoved", _e_dbus_cb_dev_del, NULL); + e_dbus_signal_handler_add(_e_dbus_conn, "org.freedesktop.Hal", + "/org/freedesktop/Hal/Manager", + "org.freedesktop.Hal.Manager", + "NewCapability", _e_dbus_cb_cap_add, NULL); + } #endif if (_e_ipc_init()) ecore_main_loop_begin();