diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-02-05 12:20:45 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-02-05 12:20:45 -0600 |
commit | bfeef21a9dffd14d2f01f878daa0969b02e0b9e4 (patch) | |
tree | 35a003dafb37930bcc708c921611ce2c5882b133 /drivers/stemodem | |
parent | 8268c4fe62b723112b66100d1f7a4c24367c3fc4 (diff) | |
download | ofono-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.c | 23 |
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) |