diff options
author | Anders Broman <anders.broman@ericsson.com> | 2019-10-30 15:53:43 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-10-30 15:22:04 +0000 |
commit | 79239431c746ca8ae4f707e914247967b5ce33a8 (patch) | |
tree | 44afb66c3ec0ad62b405b1d8e70e0a66db8a6731 /epan/dissectors/packet-sdp.c | |
parent | 14c87d8935e1c6ec7c8bfac2126fd612e7e8845b (diff) |
SDP: Handle MCPTT fmtp parameter.
Change-Id: I1f1a6ce84395e5d3922b4bcb08f0d7627bef603c
Reviewed-on: https://code.wireshark.org/review/34891
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-sdp.c')
-rw-r--r-- | epan/dissectors/packet-sdp.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c index 9b9e0fb7e3..fd536d356a 100644 --- a/epan/dissectors/packet-sdp.c +++ b/epan/dissectors/packet-sdp.c @@ -1743,19 +1743,22 @@ static void dissect_sdp_media_attribute(tvbuff_t *tvb, packet_info *pinfo, proto tokenlen = next_offset - offset; - - media_format_item = proto_tree_add_item(sdp_media_attribute_tree, - hf_media_format, tvb, offset, - tokenlen, ENC_UTF_8|ENC_NA); - if (!ws_strtou8(tvb_get_string_enc(wmem_packet_scope(), tvb, offset, tokenlen, ENC_UTF_8|ENC_NA), - NULL, &media_format) || media_format >= SDP_NO_OF_PT) { - expert_add_info(pinfo, media_format_item, &ei_sdp_invalid_media_format); - return; + media_format_item = proto_tree_add_item_ret_string(sdp_media_attribute_tree, hf_media_format, tvb, + offset, tokenlen, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), &payload_type); + + media_format = 0; + if (g_ascii_strncasecmp(payload_type, "MCPTT", 5) != 0) { + if (!ws_strtou8(payload_type, NULL, &media_format) || media_format >= SDP_NO_OF_PT) { + expert_add_info(pinfo, media_format_item, &ei_sdp_invalid_media_format); + return; + } + /* Append encoding name to format if known */ + if (media_format) { + proto_item_append_text(media_format_item, " [%s]", + transport_info->encoding_name[media_format]); + } } - /* Append encoding name to format if known */ - proto_item_append_text(media_format_item, " [%s]", - transport_info->encoding_name[media_format]); #if 0 /* XXX: ?? */ payload_type = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, tokenlen, ENC_ASCII); |