diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-01-25 13:45:22 +1030 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-01-25 13:45:22 +1030 |
commit | fb07fab2c07e7b0834724541dc47bfba02ba8574 (patch) | |
tree | 5ec29ec7f3b7b73c493a7edef89be134943b439a | |
parent | 7732898aaa70e076000f6e6aa9420482896ed996 (diff) |
config: only shutdown libhal if the connection is valid.
Thanks to libdbus' extensive use of assert we won't just get an error, it'll
bring the whole server down for us.
-rw-r--r-- | config/hal.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/config/hal.c b/config/hal.c index 52a011333..1575422c3 100644 --- a/config/hal.c +++ b/config/hal.c @@ -283,12 +283,14 @@ disconnect_hook(void *data) struct config_hal_info *info = data; if (info->hal_ctx) { - dbus_error_init(&error); - if (!libhal_ctx_shutdown(info->hal_ctx, &error)) - DebugF("[config/hal] couldn't shut down context: %s (%s)\n", - error.name, error.message); + if (dbus_connection_get_is_connected(info->system_bus)) { + dbus_error_init(&error); + if (!libhal_ctx_shutdown(info->hal_ctx, &error)) + DebugF("[config/hal] couldn't shut down context: %s (%s)\n", + error.name, error.message); + dbus_error_free(&error); + } libhal_ctx_free(info->hal_ctx); - dbus_error_free(&error); } info->hal_ctx = NULL; |