summaryrefslogtreecommitdiffstats
path: root/src/simutil.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-07-13 12:42:58 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-07-14 15:45:05 -0500
commit9a565d88b1952f5771a1ae4ca80897eb9a302221 (patch)
tree61b4b0894b64c8a0181d856091293b2f354d0356 /src/simutil.c
parent38eebca61fb71f5ac26ea54e2f0c7c57c102f3db (diff)
downloadofono-9a565d88b1952f5771a1ae4ca80897eb9a302221.tar.bz2
Refactor sim_pnn_operator_parse
Diffstat (limited to 'src/simutil.c')
-rw-r--r--src/simutil.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/simutil.c b/src/simutil.c
index 0257c64c..253970bc 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -119,26 +119,25 @@ char *sim_network_name_parse(const unsigned char *buffer, int length,
return ret;
}
-gboolean sim_pnn_operator_parse(struct sim_pnn_operator *oper,
- const guint8 *tlv, int length)
+struct sim_pnn_operator *sim_pnn_operator_parse(const guint8 *tlv, int length)
{
const char *name;
int namelength;
gboolean add_ci;
+ struct sim_pnn_operator *oper;
name = ber_tlv_find_by_tag(tlv, 0x43, length, &namelength);
if (!name || !namelength)
- return FALSE;
+ return NULL;
+
+ oper = g_new0(struct sim_pnn_operator, 1);
oper->longname = sim_network_name_parse(name, namelength,
&oper->long_ci);
name = ber_tlv_find_by_tag(tlv, 0x45, length, &namelength);
- oper->short_ci = FALSE;
- oper->shortname = NULL;
-
if (name && namelength)
oper->shortname = sim_network_name_parse(name, namelength,
&oper->short_ci);
@@ -148,7 +147,7 @@ gboolean sim_pnn_operator_parse(struct sim_pnn_operator *oper,
if (name && namelength)
oper->info = sim_string_to_utf8(name, namelength);
- return TRUE;
+ return oper;
}
void sim_pnn_operator_free(struct sim_pnn_operator *oper)