summaryrefslogtreecommitdiffstats
path: root/src/ussd.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-08-17 15:08:14 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-08-17 15:08:48 -0500
commit6d5090eafa3ea6f8c18dc67f2ad7c3428b50af88 (patch)
treee844bb7ea2f3ef3544a9f1af9c86d4db673e26d6 /src/ussd.c
parent5abd3c14d8517d992a5bf03718e7de4c034b105f (diff)
downloadofono-6d5090eafa3ea6f8c18dc67f2ad7c3428b50af88.tar.bz2
Cleanup SSC entries if USSD exits first
Diffstat (limited to 'src/ussd.c')
-rw-r--r--src/ussd.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ussd.c b/src/ussd.c
index a9d837ee..d4f2f547 100644
--- a/src/ussd.c
+++ b/src/ussd.c
@@ -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);