aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dns.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-04-04 11:05:24 -0700
committerGuy Harris <guy@alum.mit.edu>2017-04-04 18:05:59 +0000
commit2a8bcfe86c3a24eab33e8270cade8021ed7d31f9 (patch)
treeed183d70a8c600651be25e6e7355bacf3a3369df /epan/dissectors/packet-dns.c
parent20edef4915962eb63180d51b73b25feb7d78e94c (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.c270
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