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

Wireshark-dev: Re: [Wireshark-dev] Passing data from Plugin dissector to a standard wireshark d

From: hammad kabir <hammadsatti@xxxxxxxxx>
Date: Thu, 23 Aug 2012 02:29:41 +0300
Hi,

Thanks for your reply. But I think you understood my question only partly. See, I have to call a certain higher layer dissector based on a field value of this COOL protocol. Now (according to my understanding) for that I have to make certain modifications to those higher layer dissectors as well (so that they can be called when field value of COOL protocol points at these protocols). 


For that I tried to even register my protocol (as plugin) in "register.c" file as well, which contains list of all dissectors of wireshark. But this file fails to identify location of this COOL protocol's dissector during compilation by "make install". And shows "undefined reference to protoo_reg_handoff_COOL" error when compiling.  


Remember, The dissector written by me works fine if I don't have to pass the data to upper layer protocol. But when I have to pass data to upper layer protocol, its only then that the problem occurs.

I hope you understand it better, and would be able to help me out here.

Regards,
Hammad Kabir



On Sun, Aug 12, 2012 at 2:57 PM, Martin Kaiser <lists@xxxxxxxxx> wrote:
Hi Hammad,

Thus wrote hammad kabir (hammadsatti@xxxxxxxxx):

> I have recently implemented a wireshark dissector of a relatively
> simple protocol (lets call the protocol as COOL) for a project of
> mine. This dissector gets the data from IP layer and then parses it
> according to protocol definition of COOL protocol. (so far its good).
> But, next step involves passing the data from COOL protocol ( which is
> a plugin dissector in my case) to TCP protocol for further dissection
> of packet. However, I am having a difficult time in getting this
> (later) task done.

a while ago, I added dissection of DVB-CI messages that contain a tcp or
udp part. Have a look at epan/dissectors/packet-dvbci.c. When the
connection is opened, I call store_lsc_msg_dissector() and try to find
the matching dissector for the selected tcp (or udp) port.
Later in dissect_dvbci_payload_lsc(), case
T_COMMS_SEND_LAST..., I call the tcp dissector using call_dissector()
and pass the message tvb as a parameter.

Is this similar to your task?

Regards,

   Martin
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe