summaryrefslogtreecommitdiffstats
path: root/drivers/stemodem
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-02-05 12:20:45 -0600
committerDenis Kenzior <denkenz@gmail.com>2010-02-05 12:20:45 -0600
commitbfeef21a9dffd14d2f01f878daa0969b02e0b9e4 (patch)
tree35a003dafb37930bcc708c921611ce2c5882b133 /drivers/stemodem
parent8268c4fe62b723112b66100d1f7a4c24367c3fc4 (diff)
downloadofono-bfeef21a9dffd14d2f01f878daa0969b02e0b9e4.tar.bz2
Fix: Send *EIAAUW after CGDCONT for STE and MBM
Otherwise the EIAAUW might fail.
Diffstat (limited to 'drivers/stemodem')
-rw-r--r--drivers/stemodem/gprs-context.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/stemodem/gprs-context.c b/drivers/stemodem/gprs-context.c
index eb378ed3..0e973bee 100644
--- a/drivers/stemodem/gprs-context.c
+++ b/drivers/stemodem/gprs-context.c
@@ -426,13 +426,6 @@ static void ste_gprs_activate_primary(struct ofono_gprs_context *gc,
gcd->active_context = ctx->cid;
cbd->user = gc;
- /* Set username and password */
- snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"",
- ctx->cid, ctx->username, ctx->password);
-
- if (g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL) == 0)
- goto error;
-
len = snprintf(buf, sizeof(buf), "AT+CGDCONT=%u,\"IP\"", ctx->cid);
if (ctx->apn)
@@ -440,8 +433,20 @@ static void ste_gprs_activate_primary(struct ofono_gprs_context *gc,
ctx->apn);
if (g_at_chat_send(gcd->chat, buf, none_prefix,
- ste_cgdcont_cb, cbd, g_free) > 0)
- return;
+ ste_cgdcont_cb, cbd, g_free) == 0)
+ goto error;
+
+ /*
+ * Set username and password, this should be done after CGDCONT
+ * or an error can occur. We don't bother with error checking
+ * here
+ * */
+ snprintf(buf, sizeof(buf), "AT*EIAAUW=%d,1,\"%s\",\"%s\"",
+ ctx->cid, ctx->username, ctx->password);
+
+ g_at_chat_send(gcd->chat, buf, none_prefix, NULL, NULL, NULL);
+
+ return;
error:
if (cbd)