summaryrefslogtreecommitdiffstats
path: root/drivers/ifxmodem/gprs-context.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-10-26 14:43:49 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-10-26 14:43:49 +0200
commit3477a9c9e9bcf707883b3f3bde72b54dee67b9c5 (patch)
treeec1b154fc8af57d6d9a3d136dcb4c089cbbeb675 /drivers/ifxmodem/gprs-context.c
parent483663eeed925455ab311b85f3c1d2e99e19dbd2 (diff)
downloadofono-3477a9c9e9bcf707883b3f3bde72b54dee67b9c5.tar.bz2
ifxmodem: Fix GPRS disconnect handling from network side
Diffstat (limited to 'drivers/ifxmodem/gprs-context.c')
-rw-r--r--drivers/ifxmodem/gprs-context.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/ifxmodem/gprs-context.c b/drivers/ifxmodem/gprs-context.c
index 94c4030b..17a40528 100644
--- a/drivers/ifxmodem/gprs-context.c
+++ b/drivers/ifxmodem/gprs-context.c
@@ -387,14 +387,18 @@ static void cgev_notify(GAtResult *result, gpointer user_data)
return;
if (gcd->state != STATE_IDLE && gcd->rawip) {
+ g_at_rawip_shutdown(gcd->rawip);
+
g_at_rawip_unref(gcd->rawip);
gcd->rawip = NULL;
+ }
- gcd->active_context = 0;
- gcd->state = STATE_IDLE;
+ ofono_gprs_context_deactivated(gc, gcd->active_context);
- g_at_chat_resume(gcd->chat);
- }
+ gcd->active_context = 0;
+ gcd->state = STATE_IDLE;
+
+ g_at_chat_resume(gcd->chat);
}
static int ifx_gprs_context_probe(struct ofono_gprs_context *gc,