From 6f4225a6f4edc3b08f75bc0c2d470ba8358d1a45 Mon Sep 17 00:00:00 2001 From: Alexis La Goutte Date: Tue, 3 Sep 2013 06:36:33 +0000 Subject: Enhance NSEC3,NSEC3PARAM TLSA type visibility svn path=/trunk/; revision=51716 --- epan/dissectors/packet-dns.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'epan/dissectors/packet-dns.c') diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c index 31dfebac84..42f3c10173 100644 --- a/epan/dissectors/packet-dns.c +++ b/epan/dissectors/packet-dns.c @@ -3101,21 +3101,31 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree *flags_tree; - proto_tree_add_item(rr_tree, hf_dns_nsec3_algo, tvb, cur_offset++, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(rr_tree, hf_dns_nsec3_algo, tvb, cur_offset, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + flags_item = proto_tree_add_item(rr_tree, hf_dns_nsec3_flags, tvb, cur_offset, 1, ENC_BIG_ENDIAN); flags_tree = proto_item_add_subtree(flags_item, ett_nsec3_flags); proto_tree_add_item(flags_tree, hf_dns_nsec3_flag_optout, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset++; + cur_offset += 1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_iterations, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; + + proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_length, tvb, cur_offset, 1, ENC_BIG_ENDIAN); salt_len = tvb_get_guint8(tvb, cur_offset); - proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_length, tvb, cur_offset++, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_value, tvb, cur_offset, salt_len, ENC_NA); cur_offset += salt_len; + + proto_tree_add_item(rr_tree, hf_dns_nsec3_hash_length, tvb, cur_offset, 1, ENC_BIG_ENDIAN); hash_len = tvb_get_guint8(tvb, cur_offset); - proto_tree_add_item(rr_tree, hf_dns_nsec3_hash_length, tvb, cur_offset++, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_hash_value, tvb, cur_offset, hash_len, ENC_NA); cur_offset += hash_len; + rr_len = data_len - (cur_offset - initial_offset); dissect_type_bitmap(rr_tree, tvb, cur_offset, rr_len); @@ -3131,14 +3141,18 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } proto_tree_add_item(rr_tree, hf_dns_nsec3_algo, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset ++; + cur_offset +=1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_flags, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset ++; + cur_offset +=1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_iterations, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; - salt_len = tvb_get_guint8(tvb, cur_offset); + proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_length, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset ++; + salt_len = tvb_get_guint8(tvb, cur_offset); + cur_offset +=1; + proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_value, tvb, cur_offset, salt_len, ENC_NA); } @@ -3155,12 +3169,15 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rr_tree, hf_dns_tlsa_certificate_usage, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset ++; rr_len --; + proto_tree_add_item(rr_tree, hf_dns_tlsa_selector, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset ++; rr_len --; + proto_tree_add_item(rr_tree, hf_dns_tlsa_matching_type, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset ++; rr_len --; + proto_tree_add_item(rr_tree, hf_dns_tlsa_certificate_association_data, tvb, cur_offset, rr_len, ENC_NA); } -- cgit v1.2.3