diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-03-13 20:50:50 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-03-13 20:50:50 +0000 |
commit | cdf3a2b322800fda51ba66d8cdc911228fa8564b (patch) | |
tree | f8446afa2189829f3a790349eec1e1d4f5d69092 | |
parent | edcaaee164ad486bc1302d11f08a021d0301e8b5 (diff) | |
download | wireshark-cdf3a2b322800fda51ba66d8cdc911228fa8564b.tar.gz |
if tcp checksum validation is enabled
and if the checksum is wrong
and if the checksum field is 0x0000
mark the packet as [Checksum Offloaded] and still allow reassembly of
tcp segmetns
since it is most likely just a tco checksum offload engine and not a real checksum error
svn path=/trunk/; revision=17612
-rw-r--r-- | epan/dissectors/packet-tcp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c index d84aec0bdc..f0fad540b0 100644 --- a/epan/dissectors/packet-tcp.c +++ b/epan/dissectors/packet-tcp.c @@ -2591,6 +2591,13 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Checksum is valid, so we're willing to desegment it. */ desegment_ok = TRUE; + } else if (th_sum == 0) { + /* checksum is probably fine but checksum offload is used */ + proto_tree_add_uint_format(tcp_tree, hf_tcp_checksum, tvb, + offset + 16, 2, th_sum, "Checksum: 0x%04x [Checksum Offloaded]", th_sum); + + /* Checksum is (probably) valid, so we're willing to desegment it. */ + desegment_ok = TRUE; } else { proto_item *item; |