sim: Don't read EFest if the file is not available

This commit is contained in:
Denis Kenzior 2010-11-05 09:05:23 -05:00
parent 21fb984e08
commit e613c686a6
1 changed files with 12 additions and 4 deletions

View File

@ -1434,11 +1434,19 @@ static void sim_efust_read_cb(int ok, int length, int record,
sim->efust = g_memdup(data, length);
sim->efust_length = length;
ofono_sim_read(sim, SIM_EFEST_FILEID,
OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
sim_efest_read_cb, sim);
/*
* Check whether the SIM provides EFest file
* According to 31.102, section 4.2.24 and 4.2.44 the EFest file
* must be present if EFfdn or EFbdn are present
*/
if (sim_ust_is_available(sim->efust, sim->efust_length,
SIM_UST_SERVICE_ENABLED_SERVICE_TABLE)) {
ofono_sim_read(sim, SIM_EFEST_FILEID,
OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
sim_efest_read_cb, sim);
return;
return;
}
out:
sim_retrieve_imsi(sim);