summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-04-30 15:32:54 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-04-30 15:32:54 -0500
commit5343272bc1acbfb5cef7d651fee9eb84c0cd4689 (patch)
treed349ee0ac782e21b239ed2633bdfc8e6ce1a569d
parent02c2cdaf21f0cacbc679776c79aff93b96f1dcbb (diff)
downloadofono-5343272bc1acbfb5cef7d651fee9eb84c0cd4689.tar.bz2
atmodem: Port gprs-context to new PPP api
-rw-r--r--drivers/atmodem/gprs-context.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/atmodem/gprs-context.c b/drivers/atmodem/gprs-context.c
index d58231e8..ba5f0c09 100644
--- a/drivers/atmodem/gprs-context.c
+++ b/drivers/atmodem/gprs-context.c
@@ -81,8 +81,7 @@ static void at_cgact_down_cb(gboolean ok, GAtResult *result, gpointer user_data)
cb(&error, cbd->data);
}
-static void ppp_connect(GAtPPPConnectStatus success,
- const char *interface, const char *ip,
+static void ppp_connect(const char *interface, const char *ip,
const char *dns1, const char *dns2,
gpointer user_data)
{
@@ -90,15 +89,6 @@ static void ppp_connect(GAtPPPConnectStatus success,
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
const char *dns[3];
- if (success != G_AT_PPP_CONNECT_SUCCESS) {
- gcd->active_context = 0;
- gcd->state = STATE_IDLE;
-
- CALLBACK_WITH_FAILURE(gcd->up_cb, NULL, 0, NULL, NULL, NULL,
- NULL, gcd->cb_data);
- return;
- }
-
dns[0] = dns1;
dns[1] = dns2;
dns[2] = 0;
@@ -109,11 +99,17 @@ static void ppp_connect(GAtPPPConnectStatus success,
dns, gcd->cb_data);
}
-static void ppp_disconnect(gpointer user_data)
+static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user_data)
{
struct ofono_gprs_context *gc = user_data;
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
+ if (gcd->state == STATE_ENABLING) {
+ CALLBACK_WITH_FAILURE(gcd->up_cb, NULL, FALSE, NULL,
+ NULL, NULL, NULL, gcd->cb_data);
+ return;
+ }
+
ofono_gprs_context_deactivated(gc, gcd->active_context);
gcd->active_context = 0;
gcd->state = STATE_IDLE;