aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-08-01 13:25:16 +0200
committerHarald Welte <laforge@gnumonks.org>2018-08-01 17:36:21 +0200
commitda5f41cdada843ede0a360dc72601fc2125d0677 (patch)
tree05a8c5b9ac172e0fb2ac3929cbe38cf8eb0b052d /src
parentd5a35ed93284b306fd43a753f99cc2ae8ad1e996 (diff)
Migrate from osmo_ipa_idtag_parse() to ipa_ccm_id_resp_parse()
In libosmocore Change-ID I1834d90fbcdbfcb05f5b8cfe39bfe9543737ef8f we have introduced ipa_ccm_id_resp_parse() as a bugfixed replacement of ipa_ccm_idtag_parse(). The main difference is that the returned "value" parts now have a correct reported "length", whereas before this commit they all reported a one-byte too-long "length" for each IE. Let's use this opportunity to remove the copy+pasted osmo_ipa_idtag_parse() function from the libosmo-netif codebase. Change-Id: I4626d247626543e032593bf226b6c233f6678562
Diffstat (limited to 'src')
-rw-r--r--src/ipa.c32
1 files changed, 1 insertions, 31 deletions
diff --git a/src/ipa.c b/src/ipa.c
index 3888457..197a47f 100644
--- a/src/ipa.c
+++ b/src/ipa.c
@@ -130,35 +130,6 @@ int osmo_ipa_process_msg(struct msgb *msg)
return 0;
}
-int osmo_ipa_idtag_parse(struct tlv_parsed *dec, unsigned char *buf, int len)
-{
- uint8_t t_len;
- uint8_t t_tag;
- uint8_t *cur = buf;
-
- memset(dec, 0, sizeof(*dec));
-
- while (len >= 2) {
- len -= 2;
- t_len = *cur++;
- t_tag = *cur++;
-
- if (t_len > len + 1) {
- LOGP(DLMI, LOGL_ERROR, "The tag does not fit: %d\n", t_len);
- return -EINVAL;
- }
-
- DEBUGPC(DLMI, "%s='%s' ", ipaccess_idtag_name(t_tag), cur);
-
- dec->lv[t_tag].len = t_len;
- dec->lv[t_tag].val = cur;
-
- cur += t_len;
- len -= t_len;
- }
- return 0;
-}
-
int osmo_ipa_parse_unitid(const char *str, struct ipaccess_unit *unit_data)
{
unsigned long ul;
@@ -368,8 +339,7 @@ osmo_ipa_parse_msg_id_resp(struct msgb *msg, struct ipaccess_unit *unit_data)
DEBUGP(DLINP, "ID_RESP\n");
/* parse tags, search for Unit ID */
- ret = osmo_ipa_idtag_parse(&tlvp, (uint8_t *)msg->l2h + 2,
- msgb_l2len(msg)-2);
+ ret = ipa_ccm_id_resp_parse(&tlvp, (const uint8_t *)msg->l2h + 1, msgb_l2len(msg)-1);
if (ret < 0) {
LOGP(DLINP, LOGL_ERROR, "IPA response message "
"with malformed TLVs\n");