summaryrefslogtreecommitdiffstats
path: root/plugins/huawei.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2011-08-03 14:23:21 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-08-03 14:23:21 +0200
commit0ac3ccfa9baa46529acbaefc64f7ad88753a9171 (patch)
tree9e91e9812a8785bcb2182fffcfa50daabd9a72ce /plugins/huawei.c
parent0504fc56ffda24950ead2558a1059e1f4dc347cb (diff)
downloadofono-0ac3ccfa9baa46529acbaefc64f7ad88753a9171.tar.bz2
huawei: Fix race condition with online enable polling
Diffstat (limited to 'plugins/huawei.c')
-rw-r--r--plugins/huawei.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c
index 13803692..8afc0f58 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -534,6 +534,15 @@ static int huawei_disable(struct ofono_modem *modem)
g_at_chat_cancel_all(data->pcui);
g_at_chat_unregister_all(data->pcui);
+ /* Cleanup potential online enable polling */
+ if (data->sysinfo_poll_source > 0) {
+ g_source_remove(data->sysinfo_poll_source);
+ data->sysinfo_poll_source = 0;
+
+ g_free(data->online_cbd);
+ data->online_cbd = NULL;
+ }
+
g_at_chat_send(data->pcui, "AT+CFUN=0", none_prefix,
cfun_disable, modem, NULL);