Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] Modifying custom giop dissector

Date: Wed, 27 Nov 2013 11:36:05 +0000
We have a custom CORBA dissector, the source code of which is generated 
from our IDL using omniorb

c:\Python27\omniorb\omniORB-4.1.6\bin\x86_win32\omniidl -p 
c:\wireshark-1.10.3\tools -b wireshark_be q_quentin.idl > packet-quentin.c

I am in the process of building this for wireshark 1.10.3. The last 
version it was built for was 1.6.5, so it's been a while.

Some of the CORBA return values are INTs, but have a "special" meaning. 
Previously I added my own function to convert these INTs to a string and 
made a simple change to the decode function. e.g.

    s_octet4 = get_CDR_long(tvb,offset,stream_is_big_endian, boundary);
    if (tree) {
 
proto_tree_add_text(tree,tvb,*offset-4,4,"CombinedTrackSegment_portTimecode 
= %s",timecodeString(s_octet4));
    }

Where timecodeString is my function.

Looking at the source code generated for 1.10.3 and everything has 
changed. It says something like

    proto_tree_add_int(tree, 
hf_QuentinTimeline_CombinedTrackSegment_portTimecode, tvb, *offset-4, 4, 
get_CDR_long(tvb,offset,stream_is_big_endian, boundary));

Adding my custom decoder isn't so straight forward. So the question. What 
is the best way of providing a custom function for some of the return 
results?

Thanks for any help

Andy Ling