summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-07-14 10:58:52 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-07-14 15:45:06 -0500
commit3774e4eb73d867381b9f1bbddd328f139745e136 (patch)
tree550740adaaa9b0153024d3536267614e17bfee3d /src
parent0fa689721347cc5b97b5b84c1f6495983a3bff61 (diff)
downloadofono-3774e4eb73d867381b9f1bbddd328f139745e136.tar.bz2
Return the entire EONS info, not just the longname
Diffstat (limited to 'src')
-rw-r--r--src/simutil.c21
-rw-r--r--src/simutil.h15
2 files changed, 19 insertions, 17 deletions
diff --git a/src/simutil.c b/src/simutil.c
index 6830faca..46e7638d 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -31,14 +31,6 @@
#include "simutil.h"
#include "util.h"
-struct pnn_operator {
- char *longname;
- gboolean long_ci;
- char *shortname;
- gboolean short_ci;
- char *info;
-};
-
struct spdi_operator {
char mcc[OFONO_MAX_MCC_LENGTH + 1];
char mnc[OFONO_MAX_MNC_LENGTH + 1];
@@ -227,7 +219,7 @@ void sim_spdi_free(struct sim_spdi *spdi)
g_free(spdi);
}
-static void pnn_operator_free(struct pnn_operator *oper)
+static void pnn_operator_free(struct sim_eons_operator_info *oper)
{
g_free(oper->info);
g_free(oper->shortname);
@@ -238,7 +230,7 @@ struct sim_eons *sim_eons_new(int pnn_records)
{
struct sim_eons *eons = g_new0(struct sim_eons, 1);
- eons->pnn_list = g_new0(struct pnn_operator, pnn_records);
+ eons->pnn_list = g_new0(struct sim_eons_operator_info, pnn_records);
eons->pnn_max = pnn_records;
return eons;
@@ -255,7 +247,7 @@ void sim_eons_add_pnn_record(struct sim_eons *eons, int record,
const char *name;
int namelength;
gboolean add_ci;
- struct pnn_operator *oper = &eons->pnn_list[record-1];
+ struct sim_eons_operator_info *oper = &eons->pnn_list[record-1];
name = ber_tlv_find_by_tag(tlv, 0x43, length, &namelength);
@@ -335,8 +327,9 @@ static gint opl_operator_compare(gconstpointer a, gconstpointer b)
{
}
-const char *sim_eons_lookup(struct sim_eons *eons,
- const char *mcc, const char *mnc, guint16 lac)
+struct sim_eons_operator_info *sim_eons_lookup(struct sim_eons *eons,
+ const char *mcc,
+ const char *mnc, guint16 lac)
{
GSList *l;
const struct opl_operator *opl;
@@ -371,5 +364,5 @@ const char *sim_eons_lookup(struct sim_eons *eons,
if (opl->id == 0)
return NULL;
- return eons->pnn_list[opl->id - 1].longname;
+ return &eons->pnn_list[opl->id - 1];
}
diff --git a/src/simutil.h b/src/simutil.h
index 49677d72..dcabc37f 100644
--- a/src/simutil.h
+++ b/src/simutil.h
@@ -34,8 +34,16 @@ struct sim_spdi {
GSList *operators;
};
+struct sim_eons_operator_info {
+ char *longname;
+ gboolean long_ci;
+ char *shortname;
+ gboolean short_ci;
+ char *info;
+};
+
struct sim_eons {
- struct pnn_operator *pnn_list;
+ struct sim_eons_operator_info *pnn_list;
GSList *opl_list;
gboolean pnn_valid;
int pnn_max;
@@ -48,8 +56,9 @@ gboolean sim_eons_pnn_is_empty(struct sim_eons *eons);
void sim_eons_add_opl_record(struct sim_eons *eons,
const guint8 *tlv, int length);
void sim_eons_optimize(struct sim_eons *eons);
-const char *sim_eons_lookup(struct sim_eons *eons, const char *mcc,
- const char *mnc, guint16 lac);
+struct sim_eons_operator_info *sim_eons_lookup(struct sim_eons *eons,
+ const char *mcc,
+ const char *mnc, guint16 lac);
void sim_eons_free(struct sim_eons *eons);
struct sim_spdi *sim_spdi_new(const guint8 *tlv, int length);