aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/x411
diff options
context:
space:
mode:
authorGraeme Lunt <graeme.lunt@smhs.co.uk>2007-05-06 16:38:04 +0000
committerGraeme Lunt <graeme.lunt@smhs.co.uk>2007-05-06 16:38:04 +0000
commit01fa6378eb8ca3a907f2a26429c265e7e81b3a98 (patch)
tree2080e97e26b7599f935765040968da166b4bd441 /asn1/x411
parent302f45549f0ae6838c026ddf5d88893471fe0105 (diff)
Better column information display for delivery reports.
svn path=/trunk/; revision=21700
Diffstat (limited to 'asn1/x411')
-rw-r--r--asn1/x411/packet-x411-template.c1
-rw-r--r--asn1/x411/x411.asn4
-rw-r--r--asn1/x411/x411.cnf47
3 files changed, 47 insertions, 5 deletions
diff --git a/asn1/x411/packet-x411-template.c b/asn1/x411/packet-x411-template.c
index 29d1a5d61a..c3dde9165c 100644
--- a/asn1/x411/packet-x411-template.c
+++ b/asn1/x411/packet-x411-template.c
@@ -64,6 +64,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;
diff --git a/asn1/x411/x411.asn b/asn1/x411/x411.asn
index 2c698a6b47..81b49953a1 100644
--- a/asn1/x411/x411.asn
+++ b/asn1/x411/x411.asn
@@ -164,8 +164,8 @@ MTABindResult ::= CHOICE {
-- taken from X.419
MTS-APDU ::= CHOICE {
message [0] Message,
-probe [2] Probe,
-report [1] Report
+report [1] Report,
+probe [2] Probe
}
Message ::= SEQUENCE {envelope MessageTransferEnvelope,
diff --git a/asn1/x411/x411.cnf b/asn1/x411/x411.cnf
index 4f3000c8b1..483766c244 100644
--- a/asn1/x411/x411.cnf
+++ b/asn1/x411/x411.cnf
@@ -566,9 +566,14 @@ ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
%(DEFAULT_BODY)s
- 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);
+ }
+ }
+
#.FN_PARS LocalIdentifier
VAL_PTR=&id
@@ -578,17 +583,29 @@ ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
%(DEFAULT_BODY)s
- 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)));
+ }
#.FN_BODY MTSIdentifier
doing_address = TRUE;
+ if(hf_index == hf_x411_subject_identifier)
+ doing_subjectid = TRUE;
+
%(DEFAULT_BODY)s
doing_address = FALSE;
+ if(hf_index == hf_x411_subject_identifier)
+ doing_subjectid = FALSE;
+
+
#.FN_BODY MTANameAndOptionalGDI
doing_address = TRUE;
@@ -707,5 +724,29 @@ ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses"
tree = proto_item_add_subtree(item, ett_x411_bilateral_information);
offset = dissect_unknown_ber(pinfo, tvb, offset, tree);
+
+#.FN_PARS MTS-APDU
+ VAL_PTR = &apdu
+
+#.FN_BODY MTS-APDU
+ int apdu = -1;
+
+ %(DEFAULT_BODY)s
+
+ 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)"));
+ }
+
+#.FN_PARS ReportType
+ VAL_PTR = &report
+
+#.FN_BODY ReportType
+ int report = -1;
+
+ %(DEFAULT_BODY)s
+ 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)"));
+ }
+
#.END