I don't like that I have to manipulate the pinfo structures directly to
request the desegmentation. I would rather call a function to request the
data so the details are hidden from me and changes to the desegmentation
code don't impact my code. I would like to see a function i.e.
desegment_request_data( pinfo, offset, length); that would make the changes
to the pinfo->desegment_len and pinfo->dsegment_offset.
That is exactly what tcp_dissect_pdus() will do for you.
Please grep for that function and look at the examples in the various callers.
It is very easy to use.
Is the tcp_dissect_pdu() functionality still dependent on the above
layered protocols ability to set pinfo->can_desegment to non-0 (I
would guess so but want's to be sure)?