diff options
author | Anders Broman <anders.broman@ericsson.com> | 2010-01-04 23:17:37 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2010-01-04 23:17:37 +0000 |
commit | e8042d8eec671096cac639dd03ae611ca1c7c6e7 (patch) | |
tree | 40a7dfc37bec4c4206a020ce16010cb6a89d62a3 /asn1/acse | |
parent | 38b0b13b2308048d79602b7655505ce115cbb530 (diff) |
From gonzalocas:
GSSE message dissector.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4370
svn path=/trunk/; revision=31442
Diffstat (limited to 'asn1/acse')
-rw-r--r-- | asn1/acse/acse.cnf | 2 | ||||
-rw-r--r-- | asn1/acse/packet-acse-template.c | 44 |
2 files changed, 37 insertions, 9 deletions
diff --git a/asn1/acse/acse.cnf b/asn1/acse/acse.cnf index 9b41f16336..c9c8b0ac33 100644 --- a/asn1/acse/acse.cnf +++ b/asn1/acse/acse.cnf @@ -40,7 +40,7 @@ AARE-apdu/_untag/protocol-version aARE_protocol_version AARQ-apdu/_untag/aSO-context-name aARQ_aSO_context_name AARE-apdu/_untag/aSO-context-name aARE_aSO_context_name ACRQ-apdu/_untag/aSO-context-name aCRQ_aSO_context_name - +PDV-list/presentation-data-values/octet-aligned pDVList_octet_aligned #.FN_PARS Authentication-value-other/other-mechanism-name FN_VARIANT = _str VAL_PTR = &object_identifier_id diff --git a/asn1/acse/packet-acse-template.c b/asn1/acse/packet-acse-template.c index 4764c9e20a..46056b166e 100644 --- a/asn1/acse/packet-acse-template.c +++ b/asn1/acse/packet-acse-template.c @@ -58,10 +58,19 @@ #define PSNAME "ACSE" #define PFNAME "acse" +#define CLPNAME "ISO 10035-1 OSI Connectionless Association Control Service" +#define CLPSNAME "CLACSE" +#define CLPFNAME "clacse" + + #define ACSE_APDU_OID "2.2.1.0.1" /* Initialize the protocol and registered fields */ -static int proto_acse = -1; +int proto_acse = -1; +int proto_clacse = -1; + + + #include "packet-acse-hf.c" /* Initialize the subtree pointers */ @@ -196,6 +205,7 @@ dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) case SES_DISCONNECT: /* RLRQ */ case SES_FINISH: /* RLRE */ case SES_ABORT: /* ABRT */ + case CLSES_UNIT_DATA: /* AARQ Connetctionless session */ break; case SES_DATA_TRANSFER: oid=find_oid_by_pres_ctx_id(pinfo, indir_ref); @@ -217,14 +227,28 @@ dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) return; } - /* create display subtree for the protocol */ - if(parent_tree){ - item = proto_tree_add_item(parent_tree, proto_acse, tvb, 0, -1, FALSE); - tree = proto_item_add_subtree(item, ett_acse); + if(session->spdu_type == CLSES_UNIT_DATA) + { + /* create display subtree for the connectionless protocol */ + if(parent_tree) + { + item = proto_tree_add_item(parent_tree, proto_clacse, tvb, 0, -1, FALSE); + tree = proto_item_add_subtree(item, ett_acse); + } + col_set_str(pinfo->cinfo, COL_PROTOCOL, "CL-ACSE"); + col_clear(pinfo->cinfo, COL_INFO); + } + else + { + /* create display subtree for the protocol */ + if(parent_tree) + { + item = proto_tree_add_item(parent_tree, proto_acse, tvb, 0, -1, FALSE); + tree = proto_item_add_subtree(item, ett_acse); + } + col_set_str(pinfo->cinfo, COL_PROTOCOL, "ACSE"); + col_clear(pinfo->cinfo, COL_INFO); } - col_set_str(pinfo->cinfo, COL_PROTOCOL, "ACSE"); - col_clear(pinfo->cinfo, COL_INFO); - /* we can't make any additional checking here */ /* postpone it before dissector will have more information */ @@ -258,6 +282,10 @@ void proto_register_acse(void) { proto_acse = proto_register_protocol(PNAME, PSNAME, PFNAME); register_dissector("acse", dissect_acse, proto_acse); + /* Register connectionless protocol */ + proto_clacse = proto_register_protocol(CLPNAME, CLPSNAME, CLPFNAME); + + /* Register fields and subtrees */ proto_register_field_array(proto_acse, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); |