From 5207f4063e75db024b48f6a42a5964b1b334a168 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Fri, 10 Jul 2009 18:54:05 -0500 Subject: If reading one fails, don't bother reading rest --- src/sim.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/sim.c b/src/sim.c index 2d3097f7..2403cf9b 100644 --- a/src/sim.c +++ b/src/sim.c @@ -821,9 +821,15 @@ static void sim_op_retrieve_cb(const struct ofono_error *error, struct sim_file_op *op = g_queue_peek_head(sim->simop_q); int total = op->length / op->record_length; - if (error->type == OFONO_ERROR_TYPE_NO_ERROR) - op->cb(modem, 1, op->structure, op->length, op->current, - data, op->record_length, op->userdata); + if (error->type != OFONO_ERROR_TYPE_NO_ERROR) { + if (op->current == 1) + sim_op_error(modem); + + return; + } + + op->cb(modem, 1, op->structure, op->length, op->current, + data, op->record_length, op->userdata); if (op->current == total) { op = g_queue_pop_head(sim->simop_q); -- cgit v1.2.3