summaryrefslogtreecommitdiffstats
path: root/plugins/hfp.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/hfp.c')
-rw-r--r--plugins/hfp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/plugins/hfp.c b/plugins/hfp.c
index 7b86bc8a..e37c9fc1 100644
--- a/plugins/hfp.c
+++ b/plugins/hfp.c
@@ -482,6 +482,14 @@ error:
service_level_conn_failed(modem);
}
+static void hfp_disconnected_cb(gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ ofono_modem_set_powered(modem, FALSE);
+ clear_data(modem);
+}
+
/* either oFono or Phone could request SLC connection */
static int service_level_connection(struct ofono_modem *modem, int fd)
{
@@ -506,6 +514,8 @@ static int service_level_connection(struct ofono_modem *modem, int fd)
if (!chat)
return -ENOMEM;
+ g_at_chat_set_disconnect_function(chat, hfp_disconnected_cb, modem);
+
if (getenv("OFONO_AT_DEBUG"))
g_at_chat_set_debug(chat, hfp_debug, NULL);