diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-12-17 16:04:30 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-12-17 21:45:38 -0600 |
commit | b1cc0bc18466c861410f9f639f04461c70b6081e (patch) | |
tree | 763c4cade4347010d294344f8155df3624e53318 | |
parent | e27508f71a129db0a455e6caf5925d6c9c2fc94d (diff) | |
download | ofono-b1cc0bc18466c861410f9f639f04461c70b6081e.tar.bz2 |
Simplify previous patch
-rw-r--r-- | drivers/atmodem/sim.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index fca6f0f4..7159d9f2 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -717,37 +717,31 @@ static void at_csim_envelope_cb(gboolean ok, GAtResult *result, dump_response("at_csim_envelope_cb", ok, result); decode_at_error(&error, g_at_result_final_response(result)); - if (!ok) { - CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); - return; - } + if (!ok) + goto error; g_at_result_iter_init(&iter, result); - if (!g_at_result_iter_next(&iter, "+CSIM:")) { - CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); - return; - } + if (!g_at_result_iter_next(&iter, "+CSIM:")) + goto error; - if (!g_at_result_iter_next_number(&iter, &rlen)) { - CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); - return; - } + if (!g_at_result_iter_next_number(&iter, &rlen)) + goto error; - if (!g_at_result_iter_next_hexstring(&iter, &response, &len)) { - CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); - return; - } + if (!g_at_result_iter_next_hexstring(&iter, &response, &len)) + goto error; if (rlen != len * 2 || len < 2 || - response[len - 2] != 0x90 || response[len - 1] != 0) { - CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); - return; - } + response[len - 2] != 0x90 || response[len - 1] != 0) + goto error; ofono_debug("csim_envelope_cb: %i", len); cb(&error, response, len - 2, cbd->data); + return; + +error: + CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data); } static void at_sim_envelope(struct ofono_sim *sim, int length, |