diff options
author | Denis Kenzior <denkenz@gmail.com> | 2013-02-26 14:09:15 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2013-02-26 14:14:46 -0600 |
commit | 44281e53a9be904865a0bc451a283652123c3167 (patch) | |
tree | 70f9b34ea6456411f50b1e2c013d3fa08c66c5bd /src/handsfree-audio.c | |
parent | f3a7069c47a2d97a78e17c637b5fc09985cbcf8a (diff) | |
download | ofono-44281e53a9be904865a0bc451a283652123c3167.tar.gz |
handsfree-audio: Unregister from DBus on removal
Diffstat (limited to 'src/handsfree-audio.c')
-rw-r--r-- | src/handsfree-audio.c | 14 |
1 files changed, 13 insertions, 1 deletions
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); } |