summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-11-11 02:06:17 +0000
committerMichael Mann <mmann78@netscape.net>2013-11-11 02:06:17 +0000
commit5bebc2020c2000123cacdf9f736f07a00cff61d2 (patch)
tree3b1bed0ff8135f287efb27129cd1b54aa07a3ecb
parent043f18baa46a1caa597c6af4a468e300fdd9077f (diff)
downloadwireshark-5bebc2020c2000123cacdf9f736f07a00cff61d2.tar.gz
Decode more error replies in RTPproxy dissector. Bug 9408 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9408)
From Peter Lemenkov svn path=/trunk/; revision=53245
-rw-r--r--epan/dissectors/packet-rtpproxy.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c
index cfed54de40..d77129d0b5 100644
--- a/epan/dissectors/packet-rtpproxy.c
+++ b/epan/dissectors/packet-rtpproxy.c
@@ -110,10 +110,21 @@ static const value_string oktypenames[] = {
{ 0, NULL }
};
-static const value_string errortypenames[] = {
- { '1', "Syntax" }, /* E1 */
- { '7', "Software" }, /* E7 */
- { '8', "Not Found" }, /* E8 */
+static const string_string errortypenames[] = {
+ { "E0", "Syntax error" },
+ { "E1", "Syntax error" },
+ { "E2", "Syntax error" },
+ { "E3", "Unknown command" },
+ { "E4", "Syntax error" },
+ { "E5", "Out of memory" },
+ { "E6", "<no description>" },
+ { "E7", "Software error (can't create listener)" },
+ { "E8", "Not Found" },
+ { "E10", "Software error (can't create listener)" },
+ { "E11", "Out of memory" },
+ { "E12", "Out of memory" },
+ { "E13", "Out of memory" },
+ { "E14", "Out of memory" },
{ 0, NULL }
};
@@ -214,6 +225,7 @@ dissect_rtpproxy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
guint tmp;
gint realsize = 0;
guint8* rawstr;
+ guint8* tmpstr;
proto_item *ti;
proto_tree *rtpproxy_tree;
conversation_t *conversation;
@@ -445,7 +457,9 @@ dissect_rtpproxy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_reply);
if (tmp == 'e'){
- proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_error, tvb, offset+1, 1, ENC_ASCII | ENC_NA);
+ tmp = tvb_find_line_end(tvb, offset, -1, &new_offset, FALSE);
+ tmpstr = tvb_get_string(wmem_packet_scope(), tvb, offset, tmp);
+ proto_tree_add_string_format_value(rtpproxy_tree, hf_rtpproxy_error, tvb, offset, (gint)strlen(tmpstr), tmpstr, "%s (%s)", tmpstr, str_to_str(tmpstr, errortypenames, "Unknown"));
break;
}
@@ -540,9 +554,9 @@ proto_register_rtpproxy(void)
{
"Error",
"rtpproxy.error",
- FT_UINT8,
- BASE_DEC,
- VALS(errortypenames),
+ FT_STRING,
+ BASE_NONE,
+ NULL,
0x0,
NULL,
HFILL