aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorgal <gal@f5534014-38df-0310-8fa8-9805f1628bb7>2007-05-06 16:38:04 +0000
committergal <gal@f5534014-38df-0310-8fa8-9805f1628bb7>2007-05-06 16:38:04 +0000
commit20a28a7bf10b4217281794ea3db487ac7de5e07f (patch)
tree2080e97e26b7599f935765040968da166b4bd441 /epan
parent5a78b9d775173f61df95596055c935c5200c77a3 (diff)
Better column information display for delivery reports.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@21700 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-x411.c318
1 files changed, 178 insertions, 140 deletions
diff --git a/epan/dissectors/packet-x411.c b/epan/dissectors/packet-x411.c
index d5e3f8edb3..649c494d59 100644
--- a/epan/dissectors/packet-x411.c
+++ b/epan/dissectors/packet-x411.c
@@ -72,6 +72,7 @@ static const char *content_type_id; /* content type identifier */
#define MAX_ORA_STR_LEN 256
static char *oraddress = NULL;
static gboolean doing_address=FALSE;
+static gboolean doing_subjectid=FALSE;
static proto_item *address_item;
static proto_tree *top_tree=NULL;
@@ -160,8 +161,8 @@ static int hf_x411_authenticated_result = -1; /* AuthenticatedResult */
static int hf_x411_authenticated_responder_name = -1; /* MTAName */
static int hf_x411_responder_credentials = -1; /* ResponderCredentials */
static int hf_x411_message = -1; /* Message */
-static int hf_x411_probe = -1; /* Probe */
static int hf_x411_report = -1; /* Report */
+static int hf_x411_probe = -1; /* Probe */
static int hf_x411_message_envelope = -1; /* MessageTransferEnvelope */
static int hf_x411_content = -1; /* Content */
static int hf_x411_report_envelope = -1; /* ReportTransferEnvelope */
@@ -555,7 +556,7 @@ static int hf_x411_G3FacsimileNonBasicParameters_jpeg = -1;
static int hf_x411_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
/*--- End of included file: packet-x411-hf.c ---*/
-#line 75 "packet-x411-template.c"
+#line 76 "packet-x411-template.c"
/* Initialize the subtree pointers */
static gint ett_x411 = -1;
@@ -740,7 +741,7 @@ static gint ett_x411_SecurityCategories = -1;
static gint ett_x411_SecurityCategory = -1;
/*--- End of included file: packet-x411-ett.c ---*/
-#line 82 "packet-x411-template.c"
+#line 83 "packet-x411-template.c"
/*--- Included file: packet-x411-fn.c ---*/
@@ -932,7 +933,7 @@ static int dissect_token_type_identifier_impl(packet_info *pinfo _U_, proto_tree
static int
dissect_x411_TokenTypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 675 "x411.cnf"
+#line 692 "x411.cnf"
if(object_identifier_id)
call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
@@ -1078,7 +1079,7 @@ static const ber_choice_t Credentials_choice[] = {
static int
dissect_x411_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 683 "x411.cnf"
+#line 700 "x411.cnf"
guint32 credentials;
offset = dissect_ber_choice(pinfo, tree, tvb, offset,
@@ -1382,7 +1383,7 @@ static const value_string x411_MTABindError_vals[] = {
static int
dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 666 "x411.cnf"
+#line 683 "x411.cnf"
int error = -1;
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
&error);
@@ -1651,9 +1652,14 @@ dissect_x411_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
GlobalDomainIdentifier_sequence, hf_index, ett_x411_GlobalDomainIdentifier);
- if(*oraddress)
+ if(*oraddress) {
proto_item_append_text(address_item, " (%s/", oraddress);
+ if(doing_subjectid && check_col(pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " (%s/", oraddress);
+ }
+ }
+
@@ -1673,7 +1679,7 @@ static int dissect_attempted_domain(packet_info *pinfo _U_, proto_tree *tree _U_
static int
dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 577 "x411.cnf"
+#line 582 "x411.cnf"
tvbuff_t *id = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
@@ -1681,8 +1687,13 @@ dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
&id);
- if(doing_address && id)
- proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+ if(id) {
+ if(doing_address)
+ proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+
+ if(doing_subjectid && check_col(pinfo->cinfo, COL_INFO))
+ col_append_fstr(pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+ }
@@ -1701,16 +1712,23 @@ static const ber_sequence_t MTSIdentifier_sequence[] = {
static int
dissect_x411_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 585 "x411.cnf"
+#line 595 "x411.cnf"
doing_address = TRUE;
+ if(hf_index == hf_x411_subject_identifier)
+ doing_subjectid = TRUE;
+
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
MTSIdentifier_sequence, hf_index, ett_x411_MTSIdentifier);
doing_address = FALSE;
+ if(hf_index == hf_x411_subject_identifier)
+ doing_subjectid = FALSE;
+
+
return offset;
@@ -1926,7 +1944,7 @@ static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
static int
dissect_x411_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 602 "x411.cnf"
+#line 619 "x411.cnf"
address_item = tree;
@@ -2530,7 +2548,7 @@ static int dissect_per_message_indicators(packet_info *pinfo _U_, proto_tree *tr
static int
dissect_x411_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 645 "x411.cnf"
+#line 662 "x411.cnf"
tvbuff_t *arrival = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
@@ -2617,7 +2635,7 @@ static int dissect_bilateral_domain(packet_info *pinfo _U_, proto_tree *tree _U_
static int
dissect_x411_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 697 "x411.cnf"
+#line 714 "x411.cnf"
proto_item *item = NULL;
int loffset = 0;
guint32 len = 0;
@@ -2631,7 +2649,7 @@ dissect_x411_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U
tree = proto_item_add_subtree(item, ett_x411_bilateral_information);
offset = dissect_unknown_ber(pinfo, tvb, offset, tree);
-
+
return offset;
@@ -2697,7 +2715,7 @@ static const value_string x411_RoutingAction_vals[] = {
static int
dissect_x411_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 656 "x411.cnf"
+#line 673 "x411.cnf"
int action = 0;
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
@@ -2773,7 +2791,7 @@ static const ber_sequence_t DomainSuppliedInformation_set[] = {
static int
dissect_x411_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 624 "x411.cnf"
+#line 641 "x411.cnf"
doing_address = FALSE;
@@ -2801,7 +2819,7 @@ static const ber_sequence_t TraceInformationElement_sequence[] = {
static int
dissect_x411_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 608 "x411.cnf"
+#line 625 "x411.cnf"
doing_address = TRUE;
@@ -3141,110 +3159,6 @@ static int dissect_message_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tv
static int
-dissect_x411_ProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
-
- return offset;
-}
-static int dissect_probe_identifier(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_ProbeIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_probe_identifier);
-}
-
-
-
-int
-dissect_x411_ContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-static int dissect_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_content_length);
-}
-static int dissect_permissible_maximum_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_maximum_content_length);
-}
-static int dissect_maximum_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_maximum_content_length);
-}
-
-
-static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
- { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_recipient_name },
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originally_specified_recipient_number_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_per_recipient_indicators_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_x411_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
- PerRecipientProbeTransferFields_set, hf_index, ett_x411_PerRecipientProbeTransferFields);
-
- return offset;
-}
-static int dissect_per_recipient_probe_transfer_fields_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_PerRecipientProbeTransferFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields_item);
-}
-
-
-static const ber_sequence_t SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_probe_transfer_fields_item },
-};
-
-static int
-dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientProbeTransferFields);
-
- return offset;
-}
-static int dissect_per_recipient_probe_transfer_fields_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields);
-}
-
-
-static const ber_sequence_t ProbeTransferEnvelope_set[] = {
- { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_probe_identifier },
- { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mta_originator_name },
- { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
- { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
- { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_length_impl },
- { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_per_domain_bilateral_information_impl },
- { BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_trace_information },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_per_recipient_probe_transfer_fields_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_x411_ProbeTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
- ProbeTransferEnvelope_set, hf_index, ett_x411_ProbeTransferEnvelope);
-
- return offset;
-}
-
-
-
-static int
-dissect_x411_Probe(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_x411_ProbeTransferEnvelope(implicit_tag, tvb, offset, pinfo, tree, hf_index);
-
- return offset;
-}
-static int dissect_probe_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
- return dissect_x411_Probe(TRUE, tvb, offset, pinfo, tree, hf_x411_probe);
-}
-
-
-
-static int
dissect_x411_ReportIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -3579,9 +3493,19 @@ static const ber_choice_t ReportType_choice[] = {
static int
dissect_x411_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+#line 744 "x411.cnf"
+ int report = -1;
+
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
ReportType_choice, hf_index, ett_x411_ReportType,
- NULL);
+ &report);
+
+
+ if(check_col(pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(report, x411_ReportType_vals, "report-type(%d)"));
+ }
+
+
return offset;
}
@@ -3720,25 +3644,139 @@ static int dissect_report_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvb
}
+
+static int
+dissect_x411_ProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_probe_identifier(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_ProbeIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_probe_identifier);
+}
+
+
+
+int
+dissect_x411_ContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_content_length);
+}
+static int dissect_permissible_maximum_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_permissible_maximum_content_length);
+}
+static int dissect_maximum_content_length_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_ContentLength(TRUE, tvb, offset, pinfo, tree, hf_x411_maximum_content_length);
+}
+
+
+static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
+ { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_recipient_name },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_originally_specified_recipient_number_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_per_recipient_indicators_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_explicit_conversion_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x411_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ PerRecipientProbeTransferFields_set, hf_index, ett_x411_PerRecipientProbeTransferFields);
+
+ return offset;
+}
+static int dissect_per_recipient_probe_transfer_fields_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_PerRecipientProbeTransferFields(FALSE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields_item);
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_per_recipient_probe_transfer_fields_item },
+};
+
+static int
+dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SEQUENCE_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_x411_SEQUENCE_OF_PerRecipientProbeTransferFields);
+
+ return offset;
+}
+static int dissect_per_recipient_probe_transfer_fields_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_SEQUENCE_OF_PerRecipientProbeTransferFields(TRUE, tvb, offset, pinfo, tree, hf_x411_per_recipient_probe_transfer_fields);
+}
+
+
+static const ber_sequence_t ProbeTransferEnvelope_set[] = {
+ { BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_probe_identifier },
+ { BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_mta_originator_name },
+ { BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_original_encoded_information_types },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_content_type },
+ { BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_content_identifier },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_content_length_impl },
+ { BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_per_message_indicators },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_per_domain_bilateral_information_impl },
+ { BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_trace_information },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_per_recipient_probe_transfer_fields_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x411_ProbeTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ ProbeTransferEnvelope_set, hf_index, ett_x411_ProbeTransferEnvelope);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x411_Probe(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_x411_ProbeTransferEnvelope(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_probe_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
+ return dissect_x411_Probe(TRUE, tvb, offset, pinfo, tree, hf_x411_probe);
+}
+
+
static const value_string x411_MTS_APDU_vals[] = {
{ 0, "message" },
- { 2, "probe" },
{ 1, "report" },
+ { 2, "probe" },
{ 0, NULL }
};
static const ber_choice_t MTS_APDU_choice[] = {
{ 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_message_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_probe_impl },
{ 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_report_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_probe_impl },
{ 0, 0, 0, 0, NULL }
};
static int
dissect_x411_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+#line 732 "x411.cnf"
+ int apdu = -1;
+
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
MTS_APDU_choice, hf_index, ett_x411_MTS_APDU,
- NULL);
+ &apdu);
+
+
+ if(check_col(pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(apdu, x411_MTS_APDU_vals, "MTS-APDU(%d)"));
+ }
+
+
return offset;
}
@@ -3790,7 +3828,7 @@ static const ber_sequence_t MTASuppliedInformation_set[] = {
static int
dissect_x411_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 633 "x411.cnf"
+#line 650 "x411.cnf"
doing_address = FALSE;
@@ -3819,7 +3857,7 @@ static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
static int
dissect_x411_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 616 "x411.cnf"
+#line 633 "x411.cnf"
doing_address = TRUE;
@@ -6997,7 +7035,7 @@ static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = {
static int
dissect_x411_MTANameAndOptionalGDI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 593 "x411.cnf"
+#line 610 "x411.cnf"
doing_address = TRUE;
@@ -7045,7 +7083,7 @@ static int dissect_name(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *
static int
dissect_x411_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 693 "x411.cnf"
+#line 710 "x411.cnf"
offset=call_x411_oid_callback("x411.tokendata", tvb, offset, pinfo, tree);
@@ -7407,7 +7445,7 @@ static void dissect_BindTokenEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *p
/*--- End of included file: packet-x411-fn.c ---*/
-#line 84 "packet-x411-template.c"
+#line 85 "packet-x411-template.c"
static int
call_x411_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -7849,14 +7887,14 @@ void proto_register_x411(void) {
{ "message", "x411.message",
FT_NONE, BASE_NONE, NULL, 0,
"x411.Message", HFILL }},
- { &hf_x411_probe,
- { "probe", "x411.probe",
- FT_NONE, BASE_NONE, NULL, 0,
- "x411.Probe", HFILL }},
{ &hf_x411_report,
{ "report", "x411.report",
FT_NONE, BASE_NONE, NULL, 0,
"x411.Report", HFILL }},
+ { &hf_x411_probe,
+ { "probe", "x411.probe",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x411.Probe", HFILL }},
{ &hf_x411_message_envelope,
{ "envelope", "x411.envelope",
FT_NONE, BASE_NONE, NULL, 0,
@@ -9419,7 +9457,7 @@ void proto_register_x411(void) {
"", HFILL }},
/*--- End of included file: packet-x411-hfarr.c ---*/
-#line 211 "packet-x411-template.c"
+#line 212 "packet-x411-template.c"
};
/* List of subtrees */
@@ -9606,7 +9644,7 @@ void proto_register_x411(void) {
&ett_x411_SecurityCategory,
/*--- End of included file: packet-x411-ettarr.c ---*/
-#line 220 "packet-x411-template.c"
+#line 221 "packet-x411-template.c"
};
/* Register protocol */
@@ -9701,7 +9739,7 @@ void proto_reg_handoff_x411(void) {
/*--- End of included file: packet-x411-dis-tab.c ---*/
-#line 237 "packet-x411-template.c"
+#line 238 "packet-x411-template.c"
/* APPLICATION CONTEXT */