Refactor sim_pnn_operator_parse

This commit is contained in:
Denis Kenzior 2009-07-13 12:42:58 -05:00
parent 38eebca61f
commit 9a565d88b1
2 changed files with 7 additions and 9 deletions

View File

@ -119,26 +119,25 @@ char *sim_network_name_parse(const unsigned char *buffer, int length,
return ret; return ret;
} }
gboolean sim_pnn_operator_parse(struct sim_pnn_operator *oper, struct sim_pnn_operator *sim_pnn_operator_parse(const guint8 *tlv, int length)
const guint8 *tlv, int length)
{ {
const char *name; const char *name;
int namelength; int namelength;
gboolean add_ci; gboolean add_ci;
struct sim_pnn_operator *oper;
name = ber_tlv_find_by_tag(tlv, 0x43, length, &namelength); name = ber_tlv_find_by_tag(tlv, 0x43, length, &namelength);
if (!name || !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->longname = sim_network_name_parse(name, namelength,
&oper->long_ci); &oper->long_ci);
name = ber_tlv_find_by_tag(tlv, 0x45, length, &namelength); name = ber_tlv_find_by_tag(tlv, 0x45, length, &namelength);
oper->short_ci = FALSE;
oper->shortname = NULL;
if (name && namelength) if (name && namelength)
oper->shortname = sim_network_name_parse(name, namelength, oper->shortname = sim_network_name_parse(name, namelength,
&oper->short_ci); &oper->short_ci);
@ -148,7 +147,7 @@ gboolean sim_pnn_operator_parse(struct sim_pnn_operator *oper,
if (name && namelength) if (name && namelength)
oper->info = sim_string_to_utf8(name, namelength); oper->info = sim_string_to_utf8(name, namelength);
return TRUE; return oper;
} }
void sim_pnn_operator_free(struct sim_pnn_operator *oper) void sim_pnn_operator_free(struct sim_pnn_operator *oper)

View File

@ -44,5 +44,4 @@ const guint8 *ber_tlv_find_by_tag(const guint8 *pdu, guint8 in_tag,
int in_len, int *out_len); int in_len, int *out_len);
char *sim_network_name_parse(const unsigned char *buffer, int length, char *sim_network_name_parse(const unsigned char *buffer, int length,
gboolean *add_ci); gboolean *add_ci);
gboolean sim_pnn_operator_parse(struct sim_pnn_operator *oper, struct sim_pnn_operator *sim_pnn_operator_parse(const guint8 *tlv, int length);
const guint8 *tlv, int length);