diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-10-26 14:43:49 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-10-26 14:43:49 +0200 |
commit | 3477a9c9e9bcf707883b3f3bde72b54dee67b9c5 (patch) | |
tree | ec1b154fc8af57d6d9a3d136dcb4c089cbbeb675 /drivers/ifxmodem/gprs-context.c | |
parent | 483663eeed925455ab311b85f3c1d2e99e19dbd2 (diff) | |
download | ofono-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.c | 12 |
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, |