1 | initial version |
There is minimal documentation on doing things this way, but it seems that if your get_foo_pdu_length()
function returns 0 then the tcp dissector will reassemble the next tcp segment.
Presumably if this is repeated until your function detects the end of text delimiter all the segments will be added to the reassembled tvb.
What I'm not sure is the value that should be returned when you detect the end of of text delimiter, is it the number of bytes required in that segment, or the number of bytes accumulated across all segments. I think it's the latter, empirical testing should show what's required.
There is some more info in docs\README.dissector section 2.7.1.
There is also an alternative method in the same file in sect. 2.7.2 which can be used
when the dissector cannot determine how many bytes it will need to read in order to determine the size of a PDU.
Please report back if you have success so that others that also have the same query can see a solution.