It compiled with only one warning on my FreeBSD 3.4 machine:
../packet-mq.c:731: warning: unused variable `iVersionUID'
Guy,
I am afraid the compiler is correct. The UID structure does not have a
version field, only the ID structure has. I removed the variable.
I also took another way to compute the length of this structure (same of
the MQCONN struture), which avoids maintaining a state between packets.
If it's not to difficult to determine the length of an MQ message by
looking at the first few bytes of the message, it wouldn't be too hard
to make it use "tcp_dissect_pdus()" to handle those issues.
I adapted my dissector quite easily (there is indeed a length field at the
beginning of the MQ message), but I do not see the difference with the non
desegmented mode.
I tried with a long MQ message that spans on two Ethernet frames. The
dissector is called twice, once for each Ethernet frame.
I tried with two messages in the same Ethernet frame. The dissector is
called once with a tvbuffer containing the whole packet.
I am not sure that I understand what should happen in desegment mode.
In the mean time I have made a few enhancements to my dissector, namely the
heuristic detection now fully works. In the previous version, a PDU that
was spun amongst two Ethernet frames was not recognised at all.
I hope I can integrate the desegmentation mode for the next version,
Attachement : version 1.11 of the dissector
Best regards,
metatech
Attachment:
packet-mq111.zip
Description: Zip archive