summaryrefslogtreecommitdiffstats
path: root/drivers/ifxmodem/stk.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-09-26 21:47:19 +0900
committerMarcel Holtmann <marcel@holtmann.org>2010-09-26 21:47:19 +0900
commitdd0ff9310dd2ac353941eae9d090f505aef06b9d (patch)
treeb02d93574494e313057c36b125285b7ad209a868 /drivers/ifxmodem/stk.c
parent7847b866466d0969ae7cbceebc9f8d1a0a4e0b00 (diff)
downloadofono-dd0ff9310dd2ac353941eae9d090f505aef06b9d.tar.bz2
ifxmodem: Make SIM Toolkit envelope submission work
Diffstat (limited to 'drivers/ifxmodem/stk.c')
-rw-r--r--drivers/ifxmodem/stk.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/ifxmodem/stk.c b/drivers/ifxmodem/stk.c
index 2e5ca6c7..5c331ed0 100644
--- a/drivers/ifxmodem/stk.c
+++ b/drivers/ifxmodem/stk.c
@@ -62,27 +62,25 @@ static void sate_cb(gboolean ok, GAtResult *result, gpointer user_data)
decode_at_error(&error, g_at_result_final_response(result));
- if (!ok) {
- cb(&error, NULL, 0, cbd->data);
- return;
- }
+ if (!ok)
+ goto done;
g_at_result_iter_init(&iter, result);
if (g_at_result_iter_next(&iter, "+SATE:") == FALSE)
- goto error;
+ goto done;
if (g_at_result_iter_next_number(&iter, &sw1) == FALSE)
- goto error;
+ goto done;
if (g_at_result_iter_next_number(&iter, &sw2) == FALSE)
- goto error;
+ goto done;
if (g_at_result_iter_next_number(&iter, &envelope) == FALSE)
- goto error;
+ goto done;
if (g_at_result_iter_next_number(&iter, &event) == FALSE)
- goto error;
+ goto done;
DBG("sw1 %d sw2 %d envelope %d event %d", sw1, sw2, envelope, event);
@@ -91,11 +89,8 @@ static void sate_cb(gboolean ok, GAtResult *result, gpointer user_data)
DBG("len %d", len);
+done:
cb(&error, pdu, len, cbd->data);
- return;
-
-error:
- CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data);
}
static void ifx_stk_envelope(struct ofono_stk *stk, int length,