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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22772 ) Change subject: xua_msg: Add xua_msg*_get_str() to obtain string IE ...................................................................... xua_msg: Add xua_msg*_get_str() to obtain string IE We copy the contents to a static thread-local buffer to ensure zero termination of the string received by a remote entity. Change-Id: I8cbb7aeaf0cb64db0ce01c21e5fca9ab3cd932b6 --- M include/osmocom/sigtran/xua_msg.h M src/xua_msg.c 2 files changed, 25 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/sigtran/xua_msg.h b/include/osmocom/sigtran/xua_msg.h index a2cdbf2..329ba96 100644 --- a/include/osmocom/sigtran/xua_msg.h +++ b/include/osmocom/sigtran/xua_msg.h @@ -91,6 +91,8 @@ int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val); uint32_t xua_msg_part_get_u32(const struct xua_msg_part *part); uint32_t xua_msg_get_u32(const struct xua_msg *xua, uint16_t iei); +const char *xua_msg_part_get_str(const struct xua_msg_part *part); +const char *xua_msg_get_str(const struct xua_msg *xua, uint16_t iei); void xua_part_add_gt(struct msgb *msg, const struct osmo_sccp_gt *gt); 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 79c358c..42c580d 100644 --- a/src/xua_msg.c +++ b/src/xua_msg.c @@ -297,6 +297,29 @@ return xua_msg_part_get_u32(part); } +const char *xua_msg_part_get_str(const struct xua_msg_part *part) +{ + static char __thread buf[256]; + + if (part->len == 0) + return ""; + /* RFC3868 3.9.4: Length of the INFO String parameter is from 0 to 255 octets */ + if (part->len > 255) + return "<invalid-string-len>"; + + memcpy(buf, part->dat, part->len); + buf[part->len] = '\0'; + return buf; +} + +const char *xua_msg_get_str(const struct xua_msg *xua, uint16_t iei) +{ + struct xua_msg_part *part = xua_msg_find_tag(xua, iei); + if (!part) + return NULL; + return xua_msg_part_get_str(part); +} + void xua_part_add_gt(struct msgb *msg, const struct osmo_sccp_gt *gt) { uint16_t *len_ptr; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I8cbb7aeaf0cb64db0ce01c21e5fca9ab3cd932b6 Gerrit-Change-Number: 22772 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210208/7ea8975d/attachment.htm>