diff options
author | Andrzej Zaborowski <andrew.zaborowski@intel.com> | 2011-02-03 08:37:37 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-02-03 13:13:37 -0600 |
commit | a7a0cb1ed04bb75c8ee29f990fb818b806ace825 (patch) | |
tree | 721b04e5c3b268cc382d507591d2632fce43ec94 /src/network.c | |
parent | 0ecc99973a2ccafcacd1c24c976d85950fb6cbae (diff) | |
download | ofono-a7a0cb1ed04bb75c8ee29f990fb818b806ace825.tar.bz2 |
simfs: implement ofono_sim_context api
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/network.c b/src/network.c index bf614724..d94f6961 100644 --- a/src/network.c +++ b/src/network.c @@ -75,6 +75,7 @@ struct ofono_netreg { struct sim_spdi *spdi; struct sim_eons *eons; struct ofono_sim *sim; + struct ofono_sim_context *sim_context; GKeyFile *settings; char *imsi; struct ofono_watchlist *status_watches; @@ -1471,7 +1472,7 @@ check: * is present. */ if (netreg->eons && !sim_eons_pnn_is_empty(netreg->eons)) - ofono_sim_read(netreg->sim, SIM_EFOPL_FILEID, + ofono_sim_read(netreg->sim_context, SIM_EFOPL_FILEID, OFONO_SIM_FILE_STRUCTURE_FIXED, sim_opl_read_cb, netreg); } @@ -1550,7 +1551,7 @@ static void sim_spn_read_cb(int ok, int length, int record, } netreg->spname = spn; - ofono_sim_read(netreg->sim, SIM_EFSPDI_FILEID, + ofono_sim_read(netreg->sim_context, SIM_EFSPDI_FILEID, OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, sim_spdi_read_cb, netreg); @@ -1684,6 +1685,13 @@ static void netreg_unregister(struct ofono_atom *atom) netreg->settings = NULL; } + if (netreg->sim_context) { + ofono_sim_context_free(netreg->sim_context); + netreg->sim_context = NULL; + } + + netreg->sim = NULL; + g_dbus_unregister_interface(conn, path, OFONO_NETWORK_REGISTRATION_INTERFACE); ofono_modem_remove_interface(modem, @@ -1808,12 +1816,14 @@ void ofono_netreg_register(struct ofono_netreg *netreg) /* Assume that if sim atom exists, it is ready */ netreg->sim = __ofono_atom_get_data(sim_atom); + netreg->sim_context = ofono_sim_context_create(netreg->sim); + netreg_load_settings(netreg); - ofono_sim_read(netreg->sim, SIM_EFPNN_FILEID, + ofono_sim_read(netreg->sim_context, SIM_EFPNN_FILEID, OFONO_SIM_FILE_STRUCTURE_FIXED, sim_pnn_read_cb, netreg); - ofono_sim_read(netreg->sim, SIM_EFSPN_FILEID, + ofono_sim_read(netreg->sim_context, SIM_EFSPN_FILEID, OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, sim_spn_read_cb, netreg); } |