Ethereal-dev: [Ethereal-dev] Patch: MySQL dissector

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Axel Schwenke <axel@xxxxxxxxx>
Date: Tue, 16 May 2006 19:11:28 +0200
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