Hi,
There is "pinfo->fd->flags.visited" which can be used to determine if
the packet has been dissected before.
Brg
Anders
-----Original Message-----
From: ethereal-dev-bounces@xxxxxxxxxxxx
[mailto:ethereal-dev-bounces@xxxxxxxxxxxx] On Behalf Of Axel Schwenke
Sent: den 16 maj 2006 19:11
To: Ethereal development
Subject: [Ethereal-dev] Patch: MySQL dissector
Hi,
find attached a patch to bring the MySQL dissector to my currently
latest (but still preliminary) version. I heavily reorganized the code,
therefore this diff is bigger than the actual source code.
What's new:
- complete dissector for greeting/login packets
- nearly complete dissector for requests, except:
+ parameters for COM_EXECUTE
+ requests from replication slave
- added some features to response dissectors
The missing parts need reliable conversation state tracking. However I
experienced quite strange behaviour regarding the order of packets being
fed into the dissector. If I click my way through packets in the
Ethereal GUI, each packet passes the dissector twice(!), destroying the
state from previous packet. Even more: if I randomly select packets,
state information follows my clicks. All this renders the conversation
object rather useless for state tracking.
If you want to verify this, just compile packet-mysql.c with CTDEBUG
defined. This will dump additional information like the conversation
object being used and a generation counter increasing with each packet
passing the dissector.
If anybody has any idea, how I could implement keeping state between
packets in respect to the cronological order of the packets - I would be
*very* glad to know about!
XL
--
Axel Schwenke, Senior Software Developer MySQL GmbH, Oberursel Germany,
www.mysql.com
Are you MySQL certified? www.mysql.com/certification
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev