diff options
author | Denis Kenzior <denkenz@gmail.com> | 2011-12-16 08:34:59 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-12-16 09:44:10 -0600 |
commit | 7f18695f46d0d5bdcf2f7fab689800b94d9aedff (patch) | |
tree | 7e8c426abab3ef1e98a6ebd65ca5bab158f704c4 /src/sim.c | |
parent | e4e934c3683beb348c5d18f9fc035c2b76c6c522 (diff) | |
download | ofono-7f18695f46d0d5bdcf2f7fab689800b94d9aedff.tar.bz2 |
sim: Reset additional state info
We were not resetting 3GPP and CPHS phase information as well as the
CPHS service table entries on sim removal / reset.
Diffstat (limited to 'src/sim.c')
-rw-r--r-- | src/sim.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -2219,6 +2219,13 @@ static void sim_free_early_state(struct ofono_sim *sim) static void sim_free_main_state(struct ofono_sim *sim) { + int i; + + for (i = 0; i < OFONO_SIM_PASSWORD_INVALID; i++) + sim->pin_retries[i] = -1; + + memset(sim->locked_pins, 0, sizeof(sim->locked_pins)); + if (sim->imsi) { g_free(sim->imsi); sim->imsi = NULL; @@ -2259,7 +2266,10 @@ static void sim_free_main_state(struct ofono_sim *sim) sim->efsst_length = 0; } + sim->phase = OFONO_SIM_PHASE_UNKNOWN; + sim->cphs_phase = OFONO_SIM_CPHS_PHASE_NONE; sim->mnc_length = 0; + memset(sim->cphs_service_table, 0, 2); if (sim->efimg) { g_free(sim->efimg); |