aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-08-16 07:53:07 +0000
committerGuy Harris <guy@alum.mit.edu>2004-08-16 07:53:07 +0000
commitf574301a2d8a555523ef329da4b83636093dec0a (patch)
treeab394f427ea91054fab7d9120d69240a6e1d50ef /epan
parent8bf903b464bd7872561b1a9dc6e92a9ef6ccdcc4 (diff)
From Ronnie Sahlberg: add dissection of the Teletext string type to the
DirectoryString choice in SelectedAttributeTypes. svn path=/trunk/; revision=11751
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-x509sat.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c
index 14e4133302..4a0794e344 100644
--- a/epan/dissectors/packet-x509sat.c
+++ b/epan/dissectors/packet-x509sat.c
@@ -130,6 +130,8 @@ static gint ett_x509sat_TelexNumber = -1;
/* packet-x509sat-fn.c */
/* ../../tools/asn2eth.py -X -b -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */
+/*--- Fields for imported types ---*/
+
static int dissect_equality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_equality);
}
@@ -146,6 +148,7 @@ static int dissect_approximateMatch(packet_info *pinfo, proto_tree *tree, tvbuff
return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_approximateMatch);
}
+
int
dissect_x509sat_UniqueIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
@@ -246,6 +249,11 @@ dissect_x509sat_TelexNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset
static int DirectoryString_hf_index;
static int
+dissect_teletextString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_TeletextString,
+ pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL);
+}
+static int
dissect_printableString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_ber_restricted_string(FALSE, BER_UNI_TAG_PrintableString,
pinfo, tree, tvb, offset, DirectoryString_hf_index, NULL);
@@ -267,19 +275,20 @@ dissect_uTF8String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offs
}
static const value_string DirectoryString_vals[] = {
- { 0, "printableString" },
- { 1, "universalString" },
- { 2, "bmpString" },
- { 3, "uTF8String" },
+ { 0, "teletextString" },
+ { 1, "printableString" },
+ { 2, "universalString" },
+ { 3, "bmpString" },
+ { 4, "uTF8String" },
{ 0, NULL }
};
static ber_choice DirectoryString_choice[] = {
-/*XXX needs to add TeletexString */
- { 0, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString },
- { 2, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString },
- { 3, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String },
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_TeletextString, BER_FLAGS_NOOWNTAG, dissect_teletextString },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_printableString },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_UniversalString, BER_FLAGS_NOOWNTAG, dissect_universalString },
+ { 3, BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_bmpString },
+ { 4, BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_uTF8String },
{ 0, 0, 0, 0, NULL }
};