diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-08-17 15:08:14 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-08-17 15:08:48 -0500 |
commit | 6d5090eafa3ea6f8c18dc67f2ad7c3428b50af88 (patch) | |
tree | e844bb7ea2f3ef3544a9f1af9c86d4db673e26d6 /src/ussd.c | |
parent | 5abd3c14d8517d992a5bf03718e7de4c034b105f (diff) | |
download | ofono-6d5090eafa3ea6f8c18dc67f2ad7c3428b50af88.tar.bz2 |
Cleanup SSC entries if USSD exits first
Diffstat (limited to 'src/ussd.c')
-rw-r--r-- | src/ussd.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -492,6 +492,14 @@ static void ussd_unregister(struct ofono_atom *atom) struct ofono_modem *modem = __ofono_atom_get_modem(atom); const char *path = __ofono_atom_get_path(atom); + g_slist_foreach(ussd->ss_control_list, (GFunc)ssc_entry_destroy, NULL); + g_slist_free(ussd->ss_control_list); + ussd->ss_control_list = NULL; + + g_slist_foreach(ussd->ss_passwd_list, (GFunc)ssc_entry_destroy, NULL); + g_slist_free(ussd->ss_passwd_list); + ussd->ss_passwd_list = NULL; + ofono_modem_remove_interface(modem, SUPPLEMENTARY_SERVICES_INTERFACE); g_dbus_unregister_interface(conn, path, SUPPLEMENTARY_SERVICES_INTERFACE); |