diff options
author | Jeff Morriss <jeff.morriss.ws@gmail.com> | 2013-06-19 22:28:58 +0000 |
---|---|---|
committer | Jeff Morriss <jeff.morriss.ws@gmail.com> | 2013-06-19 22:28:58 +0000 |
commit | 8e7abd987101794c25c4cf3cdfcefc821a821fec (patch) | |
tree | fdc9e37118ea5c8ff0394fe648a609f207baf9fc /epan/dissectors/packet-sync.c | |
parent | 52f1140931a7ff371ddceae7ca4589fe5bef66ce (diff) |
From Anders:
Check Header CRC of SYNC protocol.
svn path=/trunk/; revision=50062
Diffstat (limited to 'epan/dissectors/packet-sync.c')
-rw-r--r-- | epan/dissectors/packet-sync.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/epan/dissectors/packet-sync.c b/epan/dissectors/packet-sync.c index 5c96535ea1..cf0e66e217 100644 --- a/epan/dissectors/packet-sync.c +++ b/epan/dissectors/packet-sync.c @@ -30,6 +30,7 @@ #include <glib.h> #include <epan/packet.h> +#include <wsutil/crc6.h> #define TYPE_0_LEN 17 #define TYPE_1_LEN 11 @@ -133,12 +134,12 @@ dissect_sync(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ /* Octet 2 - Time Stamp */ timestamp = tvb_get_ntohs(tvb, offset) * 10; - item = proto_tree_add_uint(sync_tree, hf_sync_timestamp, tvb, offset, 2, timestamp); - proto_item_append_text(item, " ms"); + item = proto_tree_add_uint(sync_tree, hf_sync_timestamp, tvb, offset, 2, timestamp); + proto_item_append_text(item, " ms"); offset += 2; /* Octet 4 - Packet Number */ - proto_tree_add_uint(sync_tree, hf_sync_packet_nr, tvb, offset, 2, packet_nr+1); + proto_tree_add_uint(sync_tree, hf_sync_packet_nr, tvb, offset, 2, packet_nr+1); offset += 2; /* Octet 6 - Elapsed Octet Counter */ @@ -158,8 +159,10 @@ dissect_sync(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ case 1: /* SYNC PDU Type 1 */ /* XXX - Calculate the CRC and check against this value? */ - proto_tree_add_item(sync_tree, hf_sync_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); + item = proto_tree_add_item(sync_tree, hf_sync_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(sync_tree, hf_sync_payload_crc, tvb, offset, 2, ENC_BIG_ENDIAN); + proto_item_append_text(item, " [Calculated CRC 0x%x]", + crc6_compute(tvb_get_ptr(tvb, 0, offset),offset)); offset += 2; /* XXX - The payload may not always be present? */ |