This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged.
Change subject: Add xua_msg_part_get_u32() to get U32 value from xua_msg_part
......................................................................
Add xua_msg_part_get_u32() to get U32 value from xua_msg_part
Sometimes one already has the xua_msg_part and thus can avoid the
lookup that's done by xua_msg_get_u32().
Change-Id: Ie11c35f9528313d0b35786a361d853addd17364f
---
M include/osmocom/sigtran/xua_msg.h
M src/xua_msg.c
2 files changed, 11 insertions(+), 4 deletions(-)
Approvals:
Harald Welte: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/include/osmocom/sigtran/xua_msg.h b/include/osmocom/sigtran/xua_msg.h
index 5dc3894..2a6e3ae 100644
--- a/include/osmocom/sigtran/xua_msg.h
+++ b/include/osmocom/sigtran/xua_msg.h
@@ -60,5 +60,6 @@
int msgb_t16l16vp_put(struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *data);
int msgb_t16l16vp_put_u32(struct msgb *msg, uint16_t tag, uint32_t val);
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val);
+uint32_t xua_msg_part_get_u32(struct xua_msg_part *part);
uint32_t xua_msg_get_u32(struct xua_msg *xua, uint16_t iei);
int xua_msg_add_sccp_addr(struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr);
diff --git a/src/xua_msg.c b/src/xua_msg.c
index 3d335d9..4a3e013 100644
--- a/src/xua_msg.c
+++ b/src/xua_msg.c
@@ -20,6 +20,7 @@
#include <osmocom/sigtran/protocol/sua.h>
#include <osmocom/sigtran/sccp_sap.h>
+#include <osmocom/core/utils.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/talloc.h>
@@ -230,13 +231,18 @@
return xua_msg_add_data(xua, iei, sizeof(val_n), (uint8_t *) &val_n);
}
+uint32_t xua_msg_part_get_u32(struct xua_msg_part *part)
+{
+ OSMO_ASSERT(part->len >= 4);
+ return ntohl(*(uint32_t *)part->dat);
+}
+
uint32_t xua_msg_get_u32(struct xua_msg *xua, uint16_t iei)
{
struct xua_msg_part *part = xua_msg_find_tag(xua, iei);
- uint32_t rc = 0;
- if (part)
- rc = ntohl(*(uint32_t *)part->dat);
- return rc;
+ if (!part)
+ return 0;
+ return xua_msg_part_get_u32(part);
}
int xua_msg_add_sccp_addr(struct xua_msg *xua, uint16_t iei, const struct osmo_sccp_addr *addr)
--
To view, visit https://gerrit.osmocom.org/1811
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie11c35f9528313d0b35786a361d853addd17364f
Gerrit-PatchSet: 3
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder