mirror of git://git.sysmocom.de/ofono
Refactor sim_pnn_operator_parse
This commit is contained in:
parent
38eebca61f
commit
9a565d88b1
|
@ -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)
|
||||||
|
|
|
@ -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);
|
|
||||||
|
|
Loading…
Reference in New Issue