Wireshark mailing list archives

Re: Passing data from Plugin dissector to a standard wireshark dissector (i.e. TCP)


From: hammad kabir <hammadsatti () gmail com>
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 () kaiser cx> wrote:

Hi Hammad,

Thus wrote hammad kabir (hammadsatti () gmail com):

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 () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org
?subject=unsubscribe

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

Current thread: