From 44281e53a9be904865a0bc451a283652123c3167 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 26 Feb 2013 14:09:15 -0600 Subject: handsfree-audio: Unregister from DBus on removal --- src/handsfree-audio.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/handsfree-audio.c') diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c index e8130cd7..289d7d9d 100644 --- a/src/handsfree-audio.c +++ b/src/handsfree-audio.c @@ -123,6 +123,16 @@ int ofono_handsfree_card_register(struct ofono_handsfree_card *card) return 0; } +static void card_unregister(struct ofono_handsfree_card *card) +{ + DBusConnection *conn = ofono_dbus_get_connection(); + + g_dbus_unregister_interface(conn, card->path, HFP_AUDIO_CARD_INTERFACE); + + g_free(card->path); + card->path = NULL; +} + void ofono_handsfree_card_remove(struct ofono_handsfree_card *card) { DBG("%p", card); @@ -130,11 +140,13 @@ void ofono_handsfree_card_remove(struct ofono_handsfree_card *card) if (card == NULL) return; + if (card->path) + card_unregister(card); + card_list = g_slist_remove(card_list, card); g_free(card->remote); g_free(card->local); - g_free(card->path); g_free(card); } -- cgit v1.2.3