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
}
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;
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));
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;
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)