diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-06-29 12:15:44 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-06-29 12:15:44 -0500 |
commit | a92d37454a441c166977a8599366d592c87a06d9 (patch) | |
tree | df7aa6409863c2884795fe08258d47c0642a2668 /gatchat/gsmdial.c | |
parent | 3a6b3bcd0caca6334cf7125ee96c27aa727d565c (diff) | |
download | ofono-a92d37454a441c166977a8599366d592c87a06d9.tar.gz |
gsmdial: Wait for a no carrier before sending CFUN
Diffstat (limited to 'gatchat/gsmdial.c')
-rw-r--r-- | gatchat/gsmdial.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gatchat/gsmdial.c b/gatchat/gsmdial.c index 59f1a5c5..9aa2f79b 100644 --- a/gatchat/gsmdial.c +++ b/gatchat/gsmdial.c @@ -262,10 +262,16 @@ static void ppp_connect(const char *iface, const char *local, const char *peer, execute(buf); } -static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data) +static void no_carrier_notify(GAtResult *result, gpointer user_data) { char buf[64]; + sprintf(buf, "AT+CFUN=%u", option_offmode); + g_at_chat_send(control, buf, none_prefix, power_down, NULL, NULL); +} + +static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data) +{ g_print("PPP Link down: %d\n", reason); g_at_ppp_unref(ppp); @@ -273,8 +279,8 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data) g_at_chat_resume(modem); - sprintf(buf, "AT+CFUN=%u", option_offmode); - g_at_chat_send(control, buf, none_prefix, power_down, NULL, NULL); + g_at_chat_register(modem, "NO CARRIER", no_carrier_notify, + FALSE, NULL, NULL); } static void connect_cb(gboolean ok, GAtResult *result, gpointer user_data) |