summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/netreg.h4
-rw-r--r--src/cbs.c12
-rw-r--r--src/network.c16
3 files changed, 22 insertions, 10 deletions
diff --git a/include/netreg.h b/include/netreg.h
index a19409e3..e97917ff 100644
--- a/include/netreg.h
+++ b/include/netreg.h
@@ -112,8 +112,8 @@ int ofono_netreg_get_location(struct ofono_netreg *netreg);
int ofono_netreg_get_cellid(struct ofono_netreg *netreg);
int ofono_netreg_get_status(struct ofono_netreg *netreg);
int ofono_netreg_get_technology(struct ofono_netreg *netreg);
-const struct ofono_network_operator *
- ofono_netreg_get_operator(struct ofono_netreg *netreg);
+const char *ofono_netreg_get_mcc(struct ofono_netreg *netreg);
+const char *ofono_netreg_get_mnc(struct ofono_netreg *netreg);
#ifdef __cplusplus
}
diff --git a/src/cbs.c b/src/cbs.c
index 577fa60c..0529879e 100644
--- a/src/cbs.c
+++ b/src/cbs.c
@@ -767,7 +767,8 @@ static void netreg_watch(struct ofono_atom *atom,
void *data)
{
struct ofono_cbs *cbs = data;
- const struct ofono_network_operator *op;
+ const char *mcc;
+ const char *mnc;
if (cond == OFONO_ATOM_WATCH_CONDITION_UNREGISTERED) {
cbs->location_watch = 0;
@@ -779,11 +780,12 @@ static void netreg_watch(struct ofono_atom *atom,
cbs->location_watch = __ofono_netreg_add_status_watch(cbs->netreg,
cbs_location_changed, cbs, NULL);
- op = ofono_netreg_get_operator(cbs->netreg);
+ mcc = ofono_netreg_get_mcc(cbs->netreg);
+ mnc = ofono_netreg_get_mnc(cbs->netreg);
- if (op) {
- memcpy(cbs->mcc, op->mcc, sizeof(cbs->mcc));
- memcpy(cbs->mnc, op->mnc, sizeof(cbs->mnc));
+ if (mcc && mnc) {
+ memcpy(cbs->mcc, mcc, sizeof(cbs->mcc));
+ memcpy(cbs->mnc, mnc, sizeof(cbs->mnc));
} else {
memset(cbs->mcc, 0, sizeof(cbs->mcc));
memset(cbs->mnc, 0, sizeof(cbs->mnc));
diff --git a/src/network.c b/src/network.c
index 43ee5734..4d77eacd 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1379,8 +1379,7 @@ int ofono_netreg_get_technology(struct ofono_netreg *netreg)
return netreg->technology;
}
-const struct ofono_network_operator *
- ofono_netreg_get_operator(struct ofono_netreg *netreg)
+const char *ofono_netreg_get_mcc(struct ofono_netreg *netreg)
{
if (netreg == NULL)
return NULL;
@@ -1388,7 +1387,18 @@ const struct ofono_network_operator *
if (netreg->current_operator == NULL)
return NULL;
- return netreg->current_operator->info;
+ return netreg->current_operator->info->mcc;
+}
+
+const char *ofono_netreg_get_mnc(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return NULL;
+
+ if (netreg->current_operator == NULL)
+ return NULL;
+
+ return netreg->current_operator->info->mnc;
}
int ofono_netreg_driver_register(const struct ofono_netreg_driver *d)