From 54ab04232862b4352673047f0382af74b0850862 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Wed, 16 Jul 2003 08:17:14 +0000 Subject: [PATCH] updates bugfix for the NumericString alphabet. Implement some restricted ia5strings svn path=/trunk/; revision=8029 --- packet-h245.c | 16 +++++++++++++--- packet-per.c | 6 +++--- packet-per.h | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packet-h245.c b/packet-h245.c index a32d5fa293..e3b8fbdc42 100644 --- a/packet-h245.c +++ b/packet-h245.c @@ -92,7 +92,7 @@ All in all a lot of work. * with great support with testing and providing capturefiles * from Martin Regner * - * $Id: packet-h245.c,v 1.18 2003/07/13 01:43:33 sahlberg Exp $ + * $Id: packet-h245.c,v 1.19 2003/07/16 08:17:14 sahlberg Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -133,6 +133,8 @@ static dissector_handle_t MultimediaSystemControlMessage_handle; static int proto_h245 = -1; static int hf_h245_pdu_type = -1; static int hf_h245_DialingInformationNumber_networkAddress = -1; +static int hf_h245_signalType = -1; +static int hf_h245_e164Address = -1; static int hf_h245_subAddress = -1; static int hf_h245_domainBased = -1; static int hf_h245_internationalNumber = -1; @@ -17955,7 +17957,8 @@ dissect_h245_FunctionNotUnderstood(tvbuff_t *tvb, int offset, packet_info *pinfo static int dissect_h245_signalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) { -NOT_DECODED_YET("signalType"); + offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_signalType, 1, 128, "0123456789#*ABCD!", 17); + return offset; } @@ -18092,7 +18095,8 @@ dissect_h245_Q2931Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t static int dissect_h245_e164Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) { -NOT_DECODED_YET("e164Address"); + offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h245_e164Address, 1, 128, "0123456789#*,", 13); + return offset; } @@ -21754,6 +21758,12 @@ proto_register_h245(void) { &hf_h245_subAddress, { "subAddress", "h245.subAddress", FT_STRING, FT_NONE, NULL, 0, "String for subAddress", HFILL }}, + { &hf_h245_e164Address, + { "e164Address", "h245.e164Address", FT_STRING, FT_NONE, + NULL, 0, "String for e164Address", HFILL }}, + { &hf_h245_signalType, + { "signalType", "h245.signalType", FT_STRING, FT_NONE, + NULL, 0, "String for signalType", HFILL }}, { &hf_h245_DialingInformationNumber_networkAddress, { "networkAddress", "h245.DialingInformationNumber_networkAddress", FT_STRING, FT_NONE, NULL, 0, "String for DialingInformationNumber_networkAddress", HFILL }}, diff --git a/packet-per.c b/packet-per.c index d7c38fa3ef..25d9ed2d00 100644 --- a/packet-per.c +++ b/packet-per.c @@ -7,7 +7,7 @@ proper helper routines * Routines for dissection of ASN.1 Aligned PER * 2003 Ronnie Sahlberg * - * $Id: packet-per.c,v 1.2 2003/07/13 01:43:33 sahlberg Exp $ + * $Id: packet-per.c,v 1.3 2003/07/16 08:17:14 sahlberg Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -263,7 +263,7 @@ dissect_per_IA5String(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_t } /* XXX we dont do >64k length strings yet */ -static guint32 +guint32 dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, int min_len, int max_len, char *alphabet, int alphabet_length) { guint32 length; @@ -368,7 +368,7 @@ DEBUG_ENTRY("dissect_per_restricted_character_string"); guint32 dissect_per_NumericString(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, int min_len, int max_len) { - offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_index, min_len, max_len, "0123456789 ", 11); + offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_index, min_len, max_len, " 0123456789", 11); return offset; } diff --git a/packet-per.h b/packet-per.h index 1f7d6fe37e..26cc62ea80 100644 --- a/packet-per.h +++ b/packet-per.h @@ -2,7 +2,7 @@ * Routines for dissection of ASN.1 Aligned PER * 2003 Ronnie Sahlberg * - * $Id: packet-per.h,v 1.2 2003/07/13 01:43:33 sahlberg Exp $ + * $Id: packet-per.h,v 1.3 2003/07/16 08:17:14 sahlberg Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -86,3 +86,5 @@ guint32 dissect_per_choice(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, pr guint32 dissect_per_sequence(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *parent_tree, int hf_index, gint ett_index, per_sequence_t *sequence); guint32 dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, int min_len, int max_len); + +guint32 dissect_per_restricted_character_string(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_tree *tree, int hf_index, int min_len, int max_len, char *alphabet, int alphabet_length);