void reporter_adapter_remove(struct btd_profile *p, struct btd_adapter *adapter) { struct reporter_adapter *radapter = find_reporter_adapter(adapter); if (!radapter) return; g_slist_foreach(radapter->devices, unregister_reporter_device, radapter); link_loss_unregister(adapter); imm_alert_unregister(adapter); reporter_adapters = g_slist_remove(reporter_adapters, radapter); g_free(radapter); }
void reporter_exit(struct btd_adapter *adapter) { struct reporter_adapter *radapter = find_reporter_adapter(adapter); if (!radapter) return; btd_unregister_device_driver(&reporter_device_driver); g_slist_foreach(radapter->devices, unregister_reporter_device, radapter); link_loss_unregister(adapter); imm_alert_unregister(adapter); dbus_connection_unref(radapter->conn); reporter_adapters = g_slist_remove(reporter_adapters, radapter); g_free(radapter); }