From f29aab25154e79bfcf4c859ac0d900b20b42bee4 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 25 May 2012 12:55:08 +0200 Subject: [PATCH] iceramodem: Handle context deactivation responses --- drivers/iceramodem/gprs-context.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/iceramodem/gprs-context.c b/drivers/iceramodem/gprs-context.c index ba65920f..5f3ff304 100644 --- a/drivers/iceramodem/gprs-context.c +++ b/drivers/iceramodem/gprs-context.c @@ -53,6 +53,7 @@ #define STATIC_IP_NETMASK "255.255.255.255" static const char *none_prefix[] = { NULL }; +static const char *ipdpact_prefix[] = { "%IPDPACT", NULL }; static const char *ipdpaddr_prefix[] = { "%IPDPADDR", NULL }; enum state { @@ -218,6 +219,8 @@ static void ipdpact_down_cb(gboolean ok, GAtResult *result, gcd->state = STATE_DISABLING; gcd->cb = cb; gcd->cb_data = cbd->data; + + ipdpact_notifier(result, gc); return; } @@ -240,6 +243,8 @@ static void ipdpact_up_cb(gboolean ok, GAtResult *result, gcd->state = STATE_ENABLING; gcd->cb = cb; gcd->cb_data = cbd->data; + + ipdpact_notifier(result, gc); return; } @@ -284,7 +289,7 @@ static void at_cgdcont_cb(gboolean ok, GAtResult *result, gpointer user_data) snprintf(buf, sizeof(buf), "AT%%IPDPACT=%u,1", gcd->active_context); - if (g_at_chat_send(gcd->chat, buf, none_prefix, + if (g_at_chat_send(gcd->chat, buf, ipdpact_prefix, ipdpact_up_cb, ncbd, g_free) > 0) return; @@ -355,7 +360,7 @@ static void icera_gprs_deactivate_primary(struct ofono_gprs_context *gc, snprintf(buf, sizeof(buf), "AT%%IPDPACT=%u,0", cid); - if (g_at_chat_send(gcd->chat, buf, none_prefix, + if (g_at_chat_send(gcd->chat, buf, ipdpact_prefix, ipdpact_down_cb, cbd, g_free) > 0) return;