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
Attachment:
packet-mysql.c.diff.gz
Description: application/gunzip
Attachment:
signature.asc
Description: OpenPGP digital signature