diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-06-16 21:30:28 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-06-16 21:30:28 -0700 |
commit | 5522df64fac7b57d3d9db2272fc9be97c8815b94 (patch) | |
tree | 40ac4fcae3b43af99290262490bc578eaa256be3 /src/sim.c | |
parent | c3124b66d903a43ce639e3de8e838ef39419fc4f (diff) | |
download | ofono-5522df64fac7b57d3d9db2272fc9be97c8815b94.tar.bz2 |
sim: Add special callback for reading MCC and MNC value
Diffstat (limited to 'src/sim.c')
-rw-r--r-- | src/sim.c | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -1721,6 +1721,20 @@ static void sim_cphs_information_read_cb(int ok, int length, int record, memcpy(sim->cphs_service_table, data + 1, 2); } +static void sim_mccmnc_cb(const struct ofono_error *error, + const char *mcc, const char *mnc, void *userdata) +{ + struct ofono_sim *sim = userdata; + + if (error->type != OFONO_ERROR_TYPE_NO_ERROR) + return; + + if (!mcc || !mnc) + return; + + sim->mnc_length = strlen(mnc); +} + static void sim_ad_read_cb(int ok, int length, int record, const unsigned char *data, int record_length, void *userdata) @@ -1728,8 +1742,11 @@ static void sim_ad_read_cb(int ok, int length, int record, struct ofono_sim *sim = userdata; int new_mnc_length; - if (!ok) + if (!ok) { + if (sim->driver->read_mccmnc) + sim->driver->read_mccmnc(sim, sim_mccmnc_cb, sim); return; + } if (length < 4) return; |