diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-04-04 11:05:24 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-04-04 18:05:59 +0000 |
commit | 2a8bcfe86c3a24eab33e8270cade8021ed7d31f9 (patch) | |
tree | ed183d70a8c600651be25e6e7355bacf3a3369df /epan/dissectors/packet-dns.c | |
parent | 20edef4915962eb63180d51b73b25feb7d78e94c (diff) |
White space and style cleanups.
Get rid of extra blank lines.
Clean up indentation.
Use the same style for switch statements inside cases for the main
switch statement in dissect_dns_answer() that's used for the main switch
statement.
Change-Id: I77da88a9ffcbf176d27e16222e75c778202c651b
Reviewed-on: https://code.wireshark.org/review/20907
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-dns.c')
-rw-r--r-- | epan/dissectors/packet-dns.c | 270 |
1 files changed, 101 insertions, 169 deletions
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c index afa12a0f70..94afa99afa 100644 --- a/epan/dissectors/packet-dns.c +++ b/epan/dissectors/packet-dns.c @@ -1843,7 +1843,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_NS: /* an authoritative Name Server (2) */ { const guchar *ns_name; @@ -1858,7 +1857,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MD: /* Mail Destination (3) */ { int hostname_len; @@ -1872,13 +1870,11 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MF: /* Mail Forwader (4) */ { int hostname_len; const guchar *hostname_str; - col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name); used_bytes = get_dns_name(tvb, cur_offset, 0, dns_data_offset, &hostname_str, &hostname_len); @@ -1887,7 +1883,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_CNAME: /* the Canonical NAME for an alias (5) */ { const guchar *cname; @@ -1902,7 +1897,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_SOA: /* Start Of Authority zone (6) */ { const guchar *mname; @@ -1940,11 +1934,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, ti_soa = proto_tree_add_item(rr_tree, hf_dns_soa_minimum_ttl, tvb, cur_offset, 4, ENC_BIG_ENDIAN); proto_item_append_text(ti_soa, " (%s)", signed_time_secs_to_str(wmem_packet_scope(), tvb_get_ntohl(tvb, cur_offset))); - } break; - case T_MB: /* MailBox domain (7) */ { int hostname_len; @@ -1958,7 +1950,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MG: /* Mail Group member (8) */ { int hostname_len; @@ -1972,7 +1963,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MR: /* Mail Rename domain (9) */ { int hostname_len; @@ -1986,7 +1976,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_NULL: /* Null (10) */ { col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name); @@ -1994,7 +1983,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_WKS: /* Well Known Service (11) */ { int rr_len = data_len; @@ -2057,11 +2045,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += 1; rr_len -= 1; } - } break; - case T_PTR: /* Domain Name Pointer (12) */ { const guchar *pname; @@ -2076,7 +2062,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_HINFO: /* Host Information (13) */ { int cpu_offset; @@ -2107,7 +2092,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MINFO: /* Mailbox or Mail list INFOrmation (14) */ { int rmailbx_len, emailbx_len; @@ -2125,7 +2109,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_MX: /* Mail eXchange (15) */ { guint16 preference = 0; @@ -2143,18 +2126,15 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += 2; proto_tree_add_string(rr_tree, hf_dns_mx_mail_exchange, tvb, cur_offset, used_bytes, name_out); /* cur_offset += mx_name_len; */ - } break; - case T_TXT: /* TeXT strings (16) */ { int rr_len = data_len; int txt_offset; int txt_len; - txt_offset = cur_offset; while (rr_len != 0) { txt_len = tvb_get_guint8(tvb, txt_offset); @@ -2165,11 +2145,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, txt_offset += txt_len; rr_len -= txt_len; } - } break; - case T_RP: /* Responsible Person (17) */ { int mbox_dname_len, txt_dname_len; @@ -2188,7 +2166,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_AFSDB: /* AFS data base location (18) */ { const guchar *host_name; @@ -2203,11 +2180,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += 2; proto_tree_add_string(rr_tree, hf_dns_afsdb_hostname, tvb, cur_offset, used_bytes, name_out); - } break; - case T_X25: /* X.25 address (19) */ { guint8 x25_len; @@ -2220,11 +2195,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rr_tree, hf_dns_x25_psdn_address, tvb, cur_offset, x25_len, ENC_ASCII|ENC_NA); /*cur_offset += x25_len;*/ - } break; - case T_ISDN: /* ISDN address (20) */ { guint8 isdn_address_len, isdn_sa_len; @@ -2251,7 +2224,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_RT: /* Route-Through (21) */ { const guchar *host_name; @@ -2266,11 +2238,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += 2; proto_tree_add_string(rr_tree, hf_dns_rt_intermediate_host, tvb, cur_offset, used_bytes, name_out); - } break; - case T_NSAP: /* for NSAP address, NSAP style A record (22) */ { col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name); @@ -2278,7 +2248,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_NSAP_PTR: /* for domain name pointer, NSAP style (23) */ { int nsap_ptr_owner_len; @@ -2302,7 +2271,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, guint8 algo; guint16 key_id; - tf = proto_tree_add_item(rr_tree, hf_dns_key_flags, tvb, cur_offset, 2, ENC_BIG_ENDIAN); flags_tree = proto_item_add_subtree(tf, ett_key_flags); flags = tvb_get_ntohs(tvb, cur_offset); @@ -2317,7 +2285,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(flags_tree, hf_dns_key_flags_ipsec, tvb, cur_offset, 2, ENC_BIG_ENDIAN); proto_tree_add_item(flags_tree, hf_dns_key_flags_mime, tvb, cur_offset, 2, ENC_BIG_ENDIAN); proto_tree_add_item(flags_tree, hf_dns_key_flags_signatory, tvb, cur_offset, 2, ENC_BIG_ENDIAN); - } cur_offset += 2; rr_len -= 2; @@ -2339,11 +2306,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, if (rr_len != 0) { proto_tree_add_item(rr_tree, hf_dns_key_public_key, tvb, cur_offset, rr_len, ENC_NA); } - } break; - case T_PX: /* Pointer to X.400/RFC822 mapping info (26)*/ { guint px_map822_len, px_mapx400_len; @@ -2365,7 +2330,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_GPOS: /* Geographical POSition (27) */ { guint8 long_len, lat_len, alt_len; @@ -2378,7 +2342,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rr_tree, hf_dns_gpos_longitude, tvb, cur_offset, long_len, ENC_ASCII|ENC_NA); cur_offset += long_len; - proto_tree_add_item(rr_tree, hf_dns_gpos_latitude_length, tvb, cur_offset, 1, ENC_BIG_ENDIAN); lat_len = tvb_get_guint8(tvb, cur_offset); cur_offset += 1; @@ -2386,18 +2349,15 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rr_tree, hf_dns_gpos_latitude, tvb, cur_offset, lat_len, ENC_ASCII|ENC_NA); cur_offset += lat_len; - proto_tree_add_item(rr_tree, hf_dns_gpos_altitude_length, tvb, cur_offset, 1, ENC_BIG_ENDIAN); alt_len = tvb_get_guint8(tvb, cur_offset); cur_offset += 1; proto_tree_add_item(rr_tree, hf_dns_gpos_altitude, tvb, cur_offset, alt_len, ENC_ASCII|ENC_NA); /*cur_offset += alt_len;*/ - } break; - case T_AAAA: /* IPv6 Address (28) */ { const char *addr6; @@ -2408,7 +2368,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_item_append_text(trr, ", addr %s", addr6); proto_tree_add_item(rr_tree, hf_dns_aaaa, tvb, cur_offset, 16, ENC_NA); - if (gbl_resolv_flags.dns_pkt_addr_resolution && (dns_class & 0x7f) == C_IN && !PINFO_FD_VISITED(pinfo)) { struct e_in6_addr addr_in6; @@ -2418,13 +2377,11 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_LOC: /* Geographical Location (29) */ { guint8 version; proto_item *ti; - version = tvb_get_guint8(tvb, cur_offset); proto_tree_add_item(rr_tree, hf_dns_loc_version, tvb, cur_offset, 1, ENC_BIG_ENDIAN); if (version == 0) { @@ -2459,7 +2416,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_NXT: /* Next name (30) */ { int rr_len = data_len; @@ -2467,7 +2423,7 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, int next_domain_name_len; used_bytes = get_dns_name(tvb, cur_offset, 0, dns_data_offset, - &next_domain_name, &next_domain_name_len); + &next_domain_name, &next_domain_name_len); name_out = format_text(wmem_packet_scope(), next_domain_name, next_domain_name_len); col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name_out); proto_item_append_text(trr, ", next domain name %s", name_out); @@ -2475,11 +2431,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += used_bytes; rr_len -= used_bytes; dissect_type_bitmap_nxt(rr_tree, tvb, cur_offset, rr_len); - } break; - case T_SRV: /* Service Location (33) */ { guint16 priority = 0; @@ -2509,11 +2463,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_item_append_text(trr, ", priority %u, weight %u, port %u, target %s", priority, weight, port, name_out); - } break; - case T_NAPTR: /* Naming Authority PoinTeR (35) */ { proto_item *ti_len; @@ -2527,7 +2479,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, const guchar *replacement; int replacement_len; - /* Order */ proto_tree_add_item(rr_tree, hf_dns_naptr_order, tvb, offset, 2, ENC_BIG_ENDIAN); order = tvb_get_ntohs(tvb, offset); @@ -2571,11 +2522,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_item_append_text(trr, ", order %u, preference %u, flags %s", order, preference, flags); - } break; - case T_KX: /* Key Exchange (36) */ { const guchar *kx_name; @@ -2588,11 +2537,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, tvb_get_ntohs(tvb, cur_offset), name_out); proto_tree_add_item(rr_tree, hf_dns_kx_preference, tvb, cur_offset, 2, ENC_BIG_ENDIAN); proto_tree_add_string(rr_tree, hf_dns_kx_key_exchange, tvb, cur_offset + 2, used_bytes, name_out); - } break; - case T_CERT: /* Certificate (37) */ { int rr_len = data_len; @@ -2615,7 +2562,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_A6: /* IPv6 address with indirection (38) Obso */ { unsigned short pre_len; @@ -2644,7 +2590,7 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, if (pre_len > 0) { used_bytes = get_dns_name(tvb, cur_offset, 0, dns_data_offset, - &pname, &pname_len); + &pname, &pname_len); } else { pname = ""; pname_len = 0; @@ -2670,11 +2616,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, pre_len, address_to_str(wmem_packet_scope(), &suffix_addr), name_out); - } break; - case T_DNAME: /* Non-terminal DNS name redirection (39) */ { const guchar *dname; @@ -2686,11 +2630,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name_out); proto_item_append_text(trr, ", dname %s", name_out); proto_tree_add_string(rr_tree, hf_dns_dname, tvb, cur_offset, used_bytes, name_out); - } break; - case T_OPT: /* Option (41) */ { int rropt_len = data_len; @@ -2715,35 +2657,47 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rropt_tree, hf_dns_opt_data, tvb, cur_offset, optlen, ENC_NA); switch(optcode) { + case O_DAU: /* DNSSEC Algorithm Understood (RFC6975) */ - while(optlen != 0 ) { - proto_tree_add_item(rropt_tree, hf_dns_opt_dau, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset += 1; - rropt_len -= 1; - optlen -= 1; + { + while (optlen != 0) { + proto_tree_add_item(rropt_tree, hf_dns_opt_dau, tvb, cur_offset, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + rropt_len -= 1; + optlen -= 1; + } } break; + case O_DHU: /* DS Hash Understood (RFC6975) */ - while(optlen != 0 ) { - proto_tree_add_item(rropt_tree, hf_dns_opt_dhu, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset += 1; - rropt_len -= 1; - optlen -= 1; + { + while (optlen != 0) { + proto_tree_add_item(rropt_tree, hf_dns_opt_dhu, tvb, cur_offset, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + rropt_len -= 1; + optlen -= 1; + } } break; + case O_N3U: /* N3SEC Hash Understood (RFC6975) */ - while(optlen != 0 ) { - proto_tree_add_item(rropt_tree, hf_dns_opt_n3u, tvb, cur_offset, 1, ENC_BIG_ENDIAN); - cur_offset += 1; - rropt_len -= 1; - optlen -= 1; + { + while (optlen != 0) { + proto_tree_add_item(rropt_tree, hf_dns_opt_n3u, tvb, cur_offset, 1, ENC_BIG_ENDIAN); + cur_offset += 1; + rropt_len -= 1; + optlen -= 1; + } } break; + case O_CLIENT_SUBNET_EXP: /* draft-vandergaast-edns-client-subnet */ expert_add_info_format(pinfo, rropt, &ei_dns_depr_opc, "Deprecated opcode. Client subnet OPT assigned as %d.", O_CLIENT_SUBNET); - /* Intentional fall-through */ - case O_CLIENT_SUBNET:{ + /* Intentional fall-through */ + + case O_CLIENT_SUBNET: + { guint16 family; guint16 addr_len = optlen - 4; union { @@ -2766,26 +2720,36 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, addr_len = 16; } tvb_memcpy(tvb, ip_addr.bytes, cur_offset, addr_len); - switch(family) { + switch (family) { + case AFNUM_INET: - proto_tree_add_ipv4(rropt_tree, hf_dns_opt_client_addr4, tvb, - cur_offset, addr_len, ip_addr.addr); + { + proto_tree_add_ipv4(rropt_tree, hf_dns_opt_client_addr4, tvb, + cur_offset, addr_len, ip_addr.addr); + } break; + case AFNUM_INET6: - proto_tree_add_ipv6(rropt_tree, hf_dns_opt_client_addr6, tvb, - cur_offset, addr_len, (struct e_in6_addr *)&ip_addr); + { + proto_tree_add_ipv6(rropt_tree, hf_dns_opt_client_addr6, tvb, + cur_offset, addr_len, (struct e_in6_addr *)&ip_addr); + } break; - default: - proto_tree_add_item(rropt_tree, hf_dns_opt_client_addr, tvb, cur_offset, (optlen - 4), - ENC_NA); + default: + { + proto_tree_add_item(rropt_tree, hf_dns_opt_client_addr, tvb, cur_offset, (optlen - 4), + ENC_NA); + } break; } cur_offset += (optlen - 4); rropt_len -= optlen; - } - break; + } + break; + case O_COOKIE: + { proto_tree_add_item(rropt_tree, hf_dns_opt_cookie_client, tvb, cur_offset, 8, ENC_NA); cur_offset += 8; rropt_len -= 8; @@ -2793,37 +2757,48 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rropt_tree, hf_dns_opt_cookie_server, tvb, cur_offset, optlen, ENC_NA); cur_offset += optlen; rropt_len -= optlen; - break; + } + break; + case O_EDNS_TCP_KA: - if(optlen == 2){ + { + if (optlen == 2) { proto_tree_add_item(rropt_tree, hf_dns_opt_edns_tcp_keepalive_timeout, tvb, cur_offset, 2, ENC_BIG_ENDIAN); } cur_offset += optlen; rropt_len -= optlen; - break; + } + break; + case O_PADDING: + { proto_tree_add_item(rropt_tree, hf_dns_opt_padding, tvb, cur_offset, optlen, ENC_NA); cur_offset += optlen; rropt_len -= optlen; - break; + } + break; + case O_CHAIN: - if(optlen){ + { + if (optlen) { proto_tree_add_item(rropt_tree, hf_dns_opt_chain_fqdn, tvb, cur_offset, optlen, ENC_ASCII|ENC_NA); } cur_offset += optlen; rropt_len -= optlen; - break; + } + break; + default: - cur_offset += optlen; - rropt_len -= optlen; - break; + { + cur_offset += optlen; + rropt_len -= optlen; + } + break; } - } } break; - case T_APL: /* Lists of Address Prefixes (42) */ { int rr_len = data_len; @@ -2834,7 +2809,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name); while (rr_len > 1) { - afamily = tvb_get_ntohs(tvb, cur_offset); proto_tree_add_item(rr_tree, hf_dns_apl_address_family, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; @@ -2867,7 +2841,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_DS: /* Delegation Signature (43) */ case T_CDS: /* Child DS (59) */ case T_DLV: @@ -2887,16 +2860,13 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, rr_len -= 1; proto_tree_add_item(rr_tree, hf_dns_ds_digest, tvb, cur_offset, rr_len, ENC_NA); - } break; - case T_SSHFP: /* Securely Publish SSH Key Fingerprints (44) */ { int rr_len = data_len; - proto_tree_add_item(rr_tree, hf_dns_sshfp_algorithm, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset += 1; rr_len -= 1; @@ -2909,7 +2879,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, if (rr_len != 0) { proto_tree_add_item(rr_tree, hf_dns_sshfp_fingerprint, tvb, cur_offset, rr_len, ENC_NA); } - } break; @@ -2929,35 +2898,47 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += 1; rr_len -= 1; - proto_tree_add_item(rr_tree, hf_dns_ipseckey_gateway_algorithm, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset += 1; rr_len -= 1; - switch( gw_type ) { + switch (gw_type) { + case 0: + { /* No Gateway */ - break; + } + break; + case 1: + { proto_tree_add_item(rr_tree, hf_dns_ipseckey_gateway_ipv4, tvb, cur_offset, 4, ENC_BIG_ENDIAN); cur_offset += 4; rr_len -= 4; - break; + } + break; + case 2: + { proto_tree_add_item(rr_tree, hf_dns_ipseckey_gateway_ipv6, tvb, cur_offset, 16, ENC_NA); cur_offset += 16; rr_len -= 16; - break; + } + break; + case 3: + { used_bytes = get_dns_name(tvb, cur_offset, 0, dns_data_offset, &gw, &gw_name_len); name_out = format_text(wmem_packet_scope(), gw, gw_name_len); proto_tree_add_string(rr_tree, hf_dns_ipseckey_gateway_dns, tvb, cur_offset, used_bytes, name_out); cur_offset += gw_name_len; rr_len -= gw_name_len; - break; + } + break; + default: - break; + break; } if (rr_len != 0) { proto_tree_add_item(rr_tree, hf_dns_ipseckey_public_key, tvb, cur_offset, rr_len, ENC_NA); @@ -2965,7 +2946,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_RRSIG: /* RRSIG (46) */ case T_SIG: /* Security SIgnature (24) */ { @@ -3015,7 +2995,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_NSEC: /* NSEC (47) */ { int rr_len = data_len; @@ -3032,11 +3011,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, rr_len -= used_bytes; dissect_type_bitmap(rr_tree, tvb, cur_offset, rr_len); - } break; - case T_DNSKEY: /* DNSKEY (48) */ case T_CDNSKEY: /* CDNSKEY (60) */ { @@ -3073,21 +3050,16 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } proto_tree_add_item(rr_tree, hf_dns_dnskey_public_key, tvb, cur_offset, rr_len, ENC_NA); - } break; - case T_DHCID: /* DHCID (49) */ { col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name); proto_tree_add_item(rr_tree, hf_dns_dhcid_rdata, tvb, cur_offset, data_len, ENC_NA); - - } break; - case T_NSEC3: /* NSEC3 (50) */ { int rr_len, initial_offset = cur_offset; @@ -3095,7 +3067,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_item *flags_item; proto_tree *flags_tree; - proto_tree_add_item(rr_tree, hf_dns_nsec3_algo, tvb, cur_offset, 1, ENC_BIG_ENDIAN); cur_offset += 1; @@ -3123,11 +3094,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, rr_len = data_len - (cur_offset - initial_offset); dissect_type_bitmap(rr_tree, tvb, cur_offset, rr_len); - } break; - case T_NSEC3PARAM: /* NSEC3PARAM (51) */ { int salt_len; @@ -3147,11 +3116,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset +=1; proto_tree_add_item(rr_tree, hf_dns_nsec3_salt_value, tvb, cur_offset, salt_len, ENC_NA); - } break; - case T_TLSA: /* DNS-Based Authentication of Named Entities (52) */ { int rr_len = data_len; @@ -3170,11 +3137,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, rr_len --; proto_tree_add_item(rr_tree, hf_dns_tlsa_certificate_association_data, tvb, cur_offset, rr_len, ENC_NA); - } break; - case T_HIP: /* Host Identity Protocol (55) */ { guint8 hit_len; @@ -3214,15 +3179,12 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, cur_offset += used_bytes; rr_len -= used_bytes; } - } break; case T_OPENPGPKEY: /* OpenPGP Key (61) */ { - proto_tree_add_item(rr_tree, hf_dns_openpgpkey, tvb, cur_offset, data_len, ENC_ASCII|ENC_NA); - } break; @@ -3241,7 +3203,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, proto_tree_add_item(rr_tree, hf_dns_csync_type_bitmap, tvb, cur_offset, rr_len, ENC_NA); dissect_type_bitmap(rr_tree, tvb, cur_offset, rr_len); - } break; @@ -3261,44 +3222,36 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, spf_offset += spf_len; rr_len -= spf_len; } - } break; - case T_NID: /* NodeID (104) */ { - proto_tree_add_item(rr_tree, hf_dns_ilnp_nodeid_preference, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; proto_tree_add_item(rr_tree, hf_dns_ilnp_nodeid, tvb, cur_offset, 8, ENC_NA); /*cur_offset += 8;*/ - } break; case T_L32: /* Locator (105) */ { - proto_tree_add_item(rr_tree, hf_dns_ilnp_locator32_preference, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; proto_tree_add_item(rr_tree, hf_dns_ilnp_locator32, tvb, cur_offset, 4, ENC_NA); /*cur_offset += 4;*/ - } break; case T_L64: /* Locator64 (106) */ { - proto_tree_add_item(rr_tree, hf_dns_ilnp_locator64_preference, tvb, cur_offset, 2, ENC_BIG_ENDIAN); cur_offset += 2; proto_tree_add_item(rr_tree, hf_dns_ilnp_locator64, tvb, cur_offset, 8, ENC_NA); /*cur_offset += 8;*/ - } break; @@ -3314,38 +3267,29 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, name_out = format_text(wmem_packet_scope(), lp_str, lp_len); proto_tree_add_string(rr_tree, hf_dns_ilnp_locatorfqdn, tvb, cur_offset, used_bytes, name_out); /*cur_offset += lp_len;*/ - } break; - case T_EUI48: /* EUI48 (108) */ { - proto_tree_add_item(rr_tree, hf_dns_eui48, tvb, cur_offset, 6, ENC_NA); /*cur_offset += 6;*/ - } break; - case T_EUI64: /* EUI64 (109) */ { - proto_tree_add_item(rr_tree, hf_dns_eui64, tvb, cur_offset, 8, ENC_NA); /*cur_offset += 8;*/ - } break; - case T_TKEY: /* Transaction Key (249) */ { const guchar *tkey_algname; int tkey_algname_len; guint16 tkey_mode, tkey_keylen, tkey_otherlen; - proto_tree *key_tree; proto_item *key_item; @@ -3377,7 +3321,8 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, key_tree = proto_item_add_subtree(key_item, ett_t_key); switch(tkey_mode) { - case TKEYMODE_GSSAPI: { + case TKEYMODE_GSSAPI: + { tvbuff_t *gssapi_tvb; /* @@ -3396,20 +3341,18 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, * the SMB dissector does in some cases, and check * whether the security blob begins with "NTLMSSP". */ - gssapi_tvb = tvb_new_subset_length( - tvb, cur_offset, tkey_keylen); + gssapi_tvb = tvb_new_subset_length(tvb, cur_offset, tkey_keylen); if (tvb_strneql(gssapi_tvb, 0, "NTLMSSP", 7) == 0) { call_dissector(ntlmssp_handle, gssapi_tvb, pinfo, key_tree); } else { call_dissector(gssapi_handle, gssapi_tvb, pinfo, key_tree); } - break; } - default: + break; + default: /* No dissector for this key mode */ - - break; + break; } cur_offset += tkey_keylen; @@ -3422,11 +3365,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, if (tkey_otherlen != 0) { proto_tree_add_item(rr_tree, hf_dns_tkey_other_data, tvb, cur_offset, tkey_otherlen, ENC_NA); } - } break; - case T_TSIG: /* Transaction Signature (250) */ { guint16 tsig_siglen, tsig_otherlen; @@ -3484,11 +3425,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, if (tsig_otherlen != 0) { proto_tree_add_item(rr_tree, hf_dns_tsig_other_data, tvb, cur_offset, tsig_otherlen, ENC_NA); } - } break; - case T_CAA: /* Certification Authority Restriction (257) */ { proto_item *caa_item; @@ -3531,7 +3470,6 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - case T_WINS: /* Microsoft's WINS (65281)*/ { int rr_len = data_len; @@ -3561,11 +3499,9 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, rr_len -= 4; nservers--; } - } break; - case T_WINS_R: /* Microsoft's WINS-R (65282)*/ { const guchar *dname; @@ -3588,25 +3524,21 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, } break; - - - /* TODO: parse more record types */ - default: - + { expert_add_info_format(pinfo, trr, &ei_dns_undecoded_option, "Dissector for DNS Type (%d)" " code not implemented, Contact Wireshark developers" " if you want this supported", dns_type); proto_tree_add_item(rr_tree, hf_dns_data, tvb, cur_offset, data_len, ENC_NA); - break; + } + break; } data_offset += data_len; return data_offset - data_start; - } static int |