summaryrefslogtreecommitdiffstats
path: root/src/network.c
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2011-02-03 08:37:37 +0100
committerDenis Kenzior <denkenz@gmail.com>2011-02-03 13:13:37 -0600
commita7a0cb1ed04bb75c8ee29f990fb818b806ace825 (patch)
tree721b04e5c3b268cc382d507591d2632fce43ec94 /src/network.c
parent0ecc99973a2ccafcacd1c24c976d85950fb6cbae (diff)
downloadofono-a7a0cb1ed04bb75c8ee29f990fb818b806ace825.tar.bz2
simfs: implement ofono_sim_context api
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c18
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);
}