Tvbuffify the IP, ICMP, TCP, UDP, OSI CLNP, OSI COTP, OSI CLTP, and OSI
authorGuy Harris <guy@alum.mit.edu>
Sat, 18 Nov 2000 10:38:33 +0000 (10:38 -0000)
committerGuy Harris <guy@alum.mit.edu>
Sat, 18 Nov 2000 10:38:33 +0000 (10:38 -0000)
commitc8196a1d1ca5a5021388cfc1bcbb64cdda5e9dc3
tree5e117f446c6e233d14b642596d67c985e685f328
parent56a0c40c18271046d22bffcc5db10cfb16a2bf6c
Tvbuffify the IP, ICMP, TCP, UDP, OSI CLNP, OSI COTP, OSI CLTP, and OSI
ESIS dissectors.

Register the IP dissector and have dissectors that call it directly
(rather than through a port table) call it through a handle.

Add a routine "tvb_set_reported_length()" which a dissector can use if
it was handed a tvbuff that contains more data than is actually in its
part of the packet - for example, handing a padded Ethernet frame to IP;
the routine sets the reported length of the tvbuff (and also adjusts the
actual length, as appropriate).  Then use it in IP.

Given that, "ethertype()" can determine how much of the Ethernet frame
was actually part of an IP datagram (and can do the same for other
protocols under Ethernet that use "tvb_set_reported_length()"; have it
return the actual length, and have "dissect_eth()" and "dissect_vlan()"
use that to mark trailer data in Ethernet II frames as well as in 802.3
frames.

svn path=/trunk/; revision=2658
29 files changed:
epan/packet.h
epan/tvbuff.c
epan/tvbuff.h
packet-clip.c
packet-clnp.c
packet-clnp.h
packet-esis.c
packet-esis.h
packet-eth.c
packet-ethertype.c
packet-gre.c
packet-ip.c
packet-ip.h
packet-mpls.c
packet-msproxy.c
packet-osi-options.c
packet-osi-options.h
packet-osi.c
packet-osi.h
packet-pim.c
packet-ppp.c
packet-raw.c
packet-socks.c
packet-tcp.c
packet-tcp.h
packet-udp.c
packet-udp.h
packet-vlan.c
packet-x25.c