On 03/07/14 19:12, bugzilla-daemon@xxxxxxxxxxxxx wrote:
*Comment # 3
<https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9851#c3> on bug
9851 <https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9851> from Guy
Harris <mailto:guy@xxxxxxxxxxxx> *
[...]
A dissector *could* manually both 1) use the pinfo.desegment* stuff and 2)
handle multiple PDUs per TCP segment - and, in fact, they *did* do so, at one
point. Inr5394 <http://anonsvn.wireshark.org/viewvc?view=revision&revision=5394> I "[Made] a "tcp_dissect_pdus()" with the standard loop for a
TCP segment, extracting PDUs from it and possibly doing reassembly." and
"[Made] the COPS, DNS, DSI, Gryphon, and SCCP dissectors use it.", so that,
instead of dissectors all having to do 1) and 2), most dissectors could just
call tcp_dissect_pdus() and supply the necessary information.
(That change doesn't show up in the history of epan/dissectors/packet-tcp.c in
the Git repository, probably because the SVN-to-Git converter couldn't handle
moves/renames in SVN, perhaps because SVN, while handling them better than CVS,
still handles them a bit awkwardly.)
Ouch--you'd think that this kind of thing would work. I guess none of
the dissectors have a history prior to The Great Dissector Move of
2004/7/18. Pity, as I recall a significant portion of the reason to
move to SVN (from CVS) was so that files could be moved without losing
history.