diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-06-05 22:37:02 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-06-05 22:37:02 -0700 |
commit | 4f4565b33a9f47882284908d6cdf56c581418e64 (patch) | |
tree | 78d918a34149829ed4640ce8d40e214fe805b5b5 /plugins/novatel.c | |
parent | e92040671d5841a746db83971f3e2cb1241f2263 (diff) | |
download | ofono-4f4565b33a9f47882284908d6cdf56c581418e64.tar.bz2 |
Add disconnect callback handling to Novatel plugin
Diffstat (limited to 'plugins/novatel.c')
-rw-r--r-- | plugins/novatel.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/plugins/novatel.c b/plugins/novatel.c index d015c51f..ee6da5fe 100644 --- a/plugins/novatel.c +++ b/plugins/novatel.c @@ -175,6 +175,19 @@ error: nwdmat_action(FALSE, result, user_data); } +static void novatel_disconnect(gpointer user_data) +{ + struct ofono_modem *modem = user_data; + struct novatel_data *data = ofono_modem_get_data(modem); + + DBG(""); + + g_at_chat_unref(data->primary); + data->primary = NULL; + + ofono_info("Channel disconnected"); +} + static int novatel_enable(struct ofono_modem *modem) { struct novatel_data *data = ofono_modem_get_data(modem); @@ -203,6 +216,9 @@ static int novatel_enable(struct ofono_modem *modem) if (getenv("OFONO_AT_DEBUG")) g_at_chat_set_debug(data->primary, novatel_debug, "1st:"); + g_at_chat_set_disconnect_function(data->primary, + novatel_disconnect, modem); + g_at_chat_send(data->primary, "ATE0 +CMEE=1", none_prefix, NULL, NULL, NULL); |