summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2008-01-25 13:45:22 +1030
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-01-25 13:45:22 +1030
commitfb07fab2c07e7b0834724541dc47bfba02ba8574 (patch)
tree5ec29ec7f3b7b73c493a7edef89be134943b439a
parent7732898aaa70e076000f6e6aa9420482896ed996 (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.c12
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;