diff --git a/ChangeLog b/ChangeLog index 4897cb2186..e8b20739cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-12-15 Robert Love + + Patch by Timo Hoenig : + * src/NetworkManagerDbus.c + - (nm_dbus_signal_filter) return DBUS_HANDLER_RESULT_HANDLED + if HAL jumps off the system bus. Otherwise libdbus + (dbus_connection_dispatch) will try to run the filter + function of our libhal context which is already freed. + 2005-12-15 Alexander Shopov * configure.in: Added "bg" (Bulgarian) to ALL_LINGUAS diff --git a/src/NetworkManagerDbus.c b/src/NetworkManagerDbus.c index 37c7141c6c..40018095a9 100644 --- a/src/NetworkManagerDbus.c +++ b/src/NetworkManagerDbus.c @@ -1074,9 +1074,15 @@ static DBusHandlerResult nm_dbus_signal_filter (DBusConnection *connection, DBus else if (strcmp (service, "org.freedesktop.Hal") == 0) { if (!old_owner_good && new_owner_good) /* Hal just appeared */ + { nm_hal_init (data); + handled = TRUE; + } else if (old_owner_good && !new_owner_good) /* Hal went away */ + { nm_hal_deinit (data); + handled = TRUE; + } } else if (nm_dhcp_manager_process_name_owner_changed (data->dhcp_manager, service, old_owner, new_owner) == TRUE) handled = TRUE;