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/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 ) Change subject: sccp: Improve logging in sccp_to_xua_opt() ...................................................................... sccp: Improve logging in sccp_to_xua_opt() Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb --- M include/osmocom/sccp/sccp_types.h M src/sccp2sua.c M src/sccp_types.c 3 files changed, 40 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/sccp/sccp_types.h b/include/osmocom/sccp/sccp_types.h index 71cbb0f..f43f822 100644 --- a/include/osmocom/sccp/sccp_types.h +++ b/include/osmocom/sccp/sccp_types.h @@ -80,6 +80,10 @@ SCCP_PNC_LONG_DATA = 19, }; +extern const struct value_string osmo_sccp_pnc_names[]; +static inline const char *osmo_sccp_pnc_name(enum sccp_message_types val) +{ return get_value_string(osmo_sccp_pnc_names, val); } + /* Figure 3/Q.713 Called/calling party address */ enum { SCCP_TITLE_IND_NONE = 0, diff --git a/src/sccp2sua.c b/src/sccp2sua.c index e68662f..b829cf6 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -711,10 +711,11 @@ oneopt = opt_start; + enum sccp_parameter_name_codes opt_type = 0; /* dummy value not used */ while (oneopt < msg->tail) { - enum sccp_parameter_name_codes opt_type = oneopt[0]; uint8_t opt_len; uint16_t opt_len16; + opt_type = oneopt[0]; switch (opt_type) { case SCCP_PNC_END_OF_OPTIONAL: @@ -722,25 +723,30 @@ case SCCP_PNC_LONG_DATA: /* two byte length field */ if (oneopt + 2 > msg->tail) - return NULL; + goto malformed; opt_len16 = oneopt[1] << 8 | oneopt[2]; if (oneopt + 3 + opt_len16 > msg->tail) - return NULL; + goto malformed; xua_msg_add_sccp_opt(xua, opt_type, opt_len16, oneopt+3); oneopt += 3 + opt_len16; break; default: /* one byte length field */ if (oneopt + 1 > msg->tail) - return NULL; + goto malformed; opt_len = oneopt[1]; if (oneopt + 2 + opt_len > msg->tail) - return NULL; + goto malformed; xua_msg_add_sccp_opt(xua, opt_type, opt_len, oneopt+2); oneopt += 2 + opt_len; } } + LOGP(DLSUA, LOGL_ERROR, "Parameter %s not found\n", osmo_sccp_pnc_name(SCCP_PNC_END_OF_OPTIONAL)); + return NULL; + +malformed: + LOGP(DLSUA, LOGL_ERROR, "Malformed parameter %s (%d)\n", osmo_sccp_pnc_name(opt_type), opt_type); return NULL; } diff --git a/src/sccp_types.c b/src/sccp_types.c index c6e24cc..98b3fa4 100644 --- a/src/sccp_types.c +++ b/src/sccp_types.c @@ -24,3 +24,28 @@ { SCCP_MSG_TYPE_LUDTS, "Long unitdata service" }, {} }; + +/* Table 2/Q.713 - SCCP parameter name codes */ +const struct value_string osmo_sccp_pnc_names[] = { + { SCCP_PNC_END_OF_OPTIONAL, "End of optional parameters" }, + { SCCP_PNC_DESTINATION_LOCAL_REFERENCE, "Destination local reference" }, + { SCCP_PNC_SOURCE_LOCAL_REFERENCE, "Source local reference" }, + { SCCP_PNC_CALLED_PARTY_ADDRESS, "Called party address" }, + { SCCP_PNC_CALLING_PARTY_ADDRESS, "Calling party address" }, + { SCCP_PNC_PROTOCOL_CLASS, "Protocol class" }, + { SCCP_PNC_SEGMENTING, "Segmenting/reassembling" }, + { SCCP_PNC_RECEIVE_SEQ_NUMBER, "Receive sequence number" }, + { SCCP_PNC_SEQUENCING, "Sequencing/segmenting" }, + { SCCP_PNC_CREDIT, "Credit" }, + { SCCP_PNC_RELEASE_CAUSE, "Release cause" }, + { SCCP_PNC_RETURN_CAUSE, "Return cause" }, + { SCCP_PNC_RESET_CAUSE, "Reset cause" }, + { SCCP_PNC_ERROR_CAUSE, "Error cause" }, + { SCCP_PNC_REFUSAL_CAUSE, "Refusal cause" }, + { SCCP_PNC_DATA, "Data" }, + { SCCP_PNC_SEGMENTATION, "Segmentation" }, + { SCCP_PNC_HOP_COUNTER, "Hop counter" }, + { SCCP_PNC_IMPORTANCE, "Importance" }, + { SCCP_PNC_LONG_DATA, "Long data" }, + {} +}; -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Icb3f18f34ecfe0602c6e491b61107a30287dcafb Gerrit-Change-Number: 16901 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin at sysmocom.de> 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/20200117/3568c780/attachment.htm>