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);  |