diff options
author | Guy Harris <guy@alum.mit.edu> | 2003-02-18 02:03:29 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2003-02-18 02:03:29 +0000 |
commit | 834966bcbfd15ab5232c9c97174b8f0e1800248c (patch) | |
tree | b1f2b701a685c1b4ad84bd5df4a4e8cd28d6eb09 /packet-giop.c | |
parent | c4ec808aadfd571bf0d88910c1e374c5908df6f4 (diff) |
Add a dissector for the CodeSets service context.
Pass "encapsulation_boundary", not "seqlen_cd", as the boundary argument
to the dissector for RTCorbaPriority.
svn path=/trunk/; revision=7162
Diffstat (limited to 'packet-giop.c')
-rw-r--r-- | packet-giop.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/packet-giop.c b/packet-giop.c index e49aacad46..01242fac6a 100644 --- a/packet-giop.c +++ b/packet-giop.c @@ -9,7 +9,7 @@ * Frank Singleton <frank.singleton@ericsson.com> * Trevor Shepherd <eustrsd@am1.ericsson.se> * - * $Id: packet-giop.c,v 1.69 2003/02/15 08:24:52 guy Exp $ + * $Id: packet-giop.c,v 1.70 2003/02/18 02:03:29 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -4620,6 +4620,28 @@ static void decode_IIOP_IOR_profile(tvbuff_t *tvb, packet_info *pinfo, proto_tre } /* + * From Section 13.10.2.4 of the CORBA 3.0 spec. + */ +static void decode_CodeSets(tvbuff_t *tvb, proto_tree *tree, int *offset, + gboolean stream_is_be, guint32 boundary) { + + guint32 code_set_id; + + if(tree) { + code_set_id = get_CDR_ulong(tvb, offset, stream_is_be, boundary ); + + proto_tree_add_text (tree, tvb, *offset - 4, 4, + "char_data: 0x%08x", code_set_id); + + code_set_id = get_CDR_ulong(tvb, offset, stream_is_be, boundary ); + + proto_tree_add_text (tree, tvb, *offset - 4, 4, + "wchar_data: 0x%08x", code_set_id); + } + +} + +/* * From Section 2.7.3 of the Real-time CORBA 1.1 Standard, the CORBA priority * is represented in the GIOP service request as: * @@ -4807,9 +4829,13 @@ void decode_ServiceContextList(tvbuff_t *tvb, proto_tree *ptree, int *offset, } else { switch(scid) { - case 0x0a: /* RTCorbaPriority */ + case 1: /* CodeSets */ + decode_CodeSets(tvb, sub_tree1, offset, + encapsulation_is_be, encapsulation_boundary); + break; + case 10: /* RTCorbaPriority */ decode_RTCorbaPriority(tvb, sub_tree1, offset, - encapsulation_is_be, seqlen_cd); + encapsulation_is_be, encapsulation_boundary); break; default: /* Need to fill these in as we learn them */ |