From Robert Bullen via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7683 :
authorJeff Morriss <jeff.morriss.ws@gmail.com>
Fri, 7 Sep 2012 02:09:59 +0000 (02:09 -0000)
committerJeff Morriss <jeff.morriss.ws@gmail.com>
Fri, 7 Sep 2012 02:09:59 +0000 (02:09 -0000)
commitaa5d9d78ddcb4b7066ab03afa4277fab0bf0f468
tree7549708474866dbbdbe811f34c57a3a7bd6ccf0b
parent8ba24b5530a5916769d2fa0012de4943bac2fde3
From Robert Bullen via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7683 :

The reassembled fragments tree in the Packet Details view is awesome, but it
lacks one thing: a field that exposes the reassembled data.

tcp.data already exists for exposing a single TCP segment's payload as a byte
array. It would be handy to have something similar for a single application
layer PDU when TCP segment reassembly is involved. I propose
tcp.reassembled.data, named and placed after the already existing field
tcp.reassembled.length.

My primary use case for this feature is outputting tcp.reassembled.data with
tshark for further processing with a script.

The attached patch implements this very feature. Because the reassembled
fragment tree code is general purpose, i.e. not specific to just TCP, any
dissector that relies upon it can add a similar field very cheaply. In that
vein I've also implemented ip.reassembled.data and ipv6.reassembled.data, which
expose reassembled fragment data as a single byte stream for IPv4 and IPv6,
respectively. All other protocols that use the reassembly code have been left
alone, other than inserting NULL into their initializer lists for the newly
introduced struct field reassemble.h:fragment_items.hf_reassembled_data.

svn path=/trunk/; revision=44802
65 files changed:
epan/dissectors/packet-6lowpan.c
epan/dissectors/packet-atalk.c
epan/dissectors/packet-bacapp.c
epan/dissectors/packet-batadv.c
epan/dissectors/packet-ber.c
epan/dissectors/packet-btobex.c
epan/dissectors/packet-capwap.c
epan/dissectors/packet-cell_broadcast.c
epan/dissectors/packet-clnp.c
epan/dissectors/packet-dcerpc.c
epan/dissectors/packet-dcm.c
epan/dissectors/packet-dcp-etsi.c
epan/dissectors/packet-dnp.c
epan/dissectors/packet-dtls.c
epan/dissectors/packet-dtn.c
epan/dissectors/packet-dvbci.c
epan/dissectors/packet-eap.c
epan/dissectors/packet-gsm_cbch.c
epan/dissectors/packet-gsm_sms.c
epan/dissectors/packet-gsm_sms_ud.c
epan/dissectors/packet-gssapi.c
epan/dissectors/packet-h223.c
epan/dissectors/packet-iax2.c
epan/dissectors/packet-idmp.c
epan/dissectors/packet-ieee80211.c
epan/dissectors/packet-ip.c
epan/dissectors/packet-ipv6.c
epan/dissectors/packet-isakmp.c
epan/dissectors/packet-isup.c
epan/dissectors/packet-lapdm.c
epan/dissectors/packet-lapsat.c
epan/dissectors/packet-ltp.c
epan/dissectors/packet-mp2t.c
epan/dissectors/packet-mux27010.c
epan/dissectors/packet-ncp2222.inc
epan/dissectors/packet-ndmp.c
epan/dissectors/packet-ndps.c
epan/dissectors/packet-netbios.c
epan/dissectors/packet-ositp.c
epan/dissectors/packet-p_mul.c
epan/dissectors/packet-pop.c
epan/dissectors/packet-q931.c
epan/dissectors/packet-reload.c
epan/dissectors/packet-rpc.c
epan/dissectors/packet-rtp.c
epan/dissectors/packet-rtse.c
epan/dissectors/packet-sccp.c
epan/dissectors/packet-scsi.c
epan/dissectors/packet-ses.c
epan/dissectors/packet-smb-pipe.c
epan/dissectors/packet-smb.c
epan/dissectors/packet-smtp.c
epan/dissectors/packet-sndcp.c
epan/dissectors/packet-ssl.c
epan/dissectors/packet-t38.c
epan/dissectors/packet-tcp.c
epan/dissectors/packet-tds.c
epan/dissectors/packet-teamspeak2.c
epan/dissectors/packet-tipc.c
epan/dissectors/packet-wai.c
epan/dissectors/packet-wtp.c
epan/dissectors/packet-x25.c
epan/dissectors/packet-zbee-aps.c
epan/reassemble.c
epan/reassemble.h