Hi list,
Could please the maintainers have a look at the patch and possibly check it
in, if you are happy with it?
If not, please tell me what problems exist in the patch and what i should do
to change it.
attached is a diff against the cvs tree two days ago.
It contains the diff to get ethereal to support three new features:
* virtual packets : packets created inside ethereal (in a dissector?). These
packets are virtual in the sense
that they were not read from any file nor were they received from an
interface.
They just exist inside ethereal to make debugging of some other packets
easier.
* IPv4 defragmentation : ip defragmentation will defragment the ip packets
in the dissector and when an
entire ip packet has been defragmented, it will be displayed as a
non-fragmented virtual ip packet.
Virtual ip packets are the defragmented packets with some small exceptions:
virtual ip packets have no checksum displayed or checked. IP-flags and
fragment offset are also
ignored for these packets.
* in file.c there is now an api : register_file_cleanup_func( void
(*func)(void) ) which will take as argument
a function to call before a new file is read or a new capture is started.
This is now used by packet-virtual/packet-ip
to clean up persistent data between invokations of the dissectors.
This is a generic api that can be used by anyone who wants some special
cleanup to be performed
prior to read/capture new data in ehtereal.
All memory allocated inside ethereal for these functions are kept track of
and deallocated properly.
It should not leak memory (at least this stuff in this patch should not
leak)
IP defragmentation is controlled by global variable ip_defragment
==0 : old original behaviur, no changes.
==1 : ip fragments will be reassembled and the defragmented packet will be
shown as a virtual packet.
Could please the maintainers have a look at the patch and possibly check it
in, if you are happy with it?
If not, please tell me what problems exist in the patch and what i should do
to change it.
Perhaps someone which knows how the widget toolkit works could add a button
"[x] IP Defragment" somewhere in the
GUI? Perhaps also a cmdline flag? Like how nameresolution on/off works...
Have fun.
Attachment:
ethereal.diff
Description: Binary data
Attachment:
A995.cap
Description: Binary data