aboutsummaryrefslogtreecommitdiffstats
path: root/packet-dns.c
diff options
context:
space:
mode:
authorJun-ichiro itojun Hagino <itojun@itojun.org>2000-04-26 12:01:50 +0000
committerJun-ichiro itojun Hagino <itojun@itojun.org>2000-04-26 12:01:50 +0000
commit3d1ce3399ed503fbdff0f523f51c54627201572b (patch)
treea508134af4b0caaeba0aef72cea88f1564719ccd /packet-dns.c
parentddb1da7df2e30741cd5c9937cd081a20710c93ef (diff)
support A6 packet (IPv6 name resolution).
support AD and CD bit in RFC2535 (DNS security extension) section 6. (seen on packets from BIND9 named) svn path=/trunk/; revision=1890
Diffstat (limited to 'packet-dns.c')
-rw-r--r--packet-dns.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/packet-dns.c b/packet-dns.c
index c82625943a..a1ebf6b6ee 100644
--- a/packet-dns.c
+++ b/packet-dns.c
@@ -1,7 +1,7 @@
/* packet-dns.c
* Routines for DNS packet disassembly
*
- * $Id: packet-dns.c,v 1.42 2000/04/12 06:59:28 guy Exp $
+ * $Id: packet-dns.c,v 1.43 2000/04/26 12:01:50 itojun Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -111,6 +111,7 @@ static gint ett_t_key_flags = -1;
#define T_SRV 33 /* service location (RFC 2052) */
#define T_ATMA 34 /* ??? */
#define T_NAPTR 35 /* naming authority pointer (RFC 2168) */
+#define T_A6 38 /* IPv6 address with indirection (draft-ietf-ipngwg-dns-lookups-07) */
#define T_OPT 41 /* OPT pseudo-RR (RFC 2671) */
/* Bit fields in the flags */
@@ -120,6 +121,8 @@ static gint ett_t_key_flags = -1;
#define F_TRUNCATED (1<<9) /* response is truncated */
#define F_RECDESIRED (1<<8) /* recursion desired */
#define F_RECAVAIL (1<<7) /* recursion available */
+#define F_AUTHENTIC (1<<5) /* authentic data (RFC2535) */
+#define F_CHECKDISABLE (1<<4) /* checking disabled (RFC2535) */
#define F_RCODE (0xF<<0) /* reply code */
/* Opcodes */
@@ -178,7 +181,7 @@ dns_type_name (u_int type)
"NAPTR", /* RFC 2168 */
NULL,
NULL,
- NULL,
+ "A6", /* draft-ietf-ipngwg-dns-lookups-07 */
NULL,
NULL,
"OPT" /* RFC 2671 */
@@ -259,7 +262,7 @@ dns_long_type_name (u_int type)
"Naming authority pointer", /* RFC 2168 */
NULL,
NULL,
- NULL,
+ "IPv6 address with indirection", /* draft-ietf-ipngwg-dns-lookups-07 */
NULL,
NULL,
"EDNS0 option" /* RFC 2671 */
@@ -1620,6 +1623,20 @@ dissect_dns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
"Server can do recursive queries",
"Server can't do recursive queries"));
proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s",
+ decode_boolean_bitfield(flags, F_AUTHENTIC,
+ 2*8,
+ "Answer/authority portion was autenticated by the server",
+ "Answer/authority portion was not autenticated by the server"));
+ }
+ if ((flags & F_RESPONSE) == 0) {
+ proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s",
+ decode_boolean_bitfield(flags, F_CHECKDISABLE,
+ 2*8,
+ "Non-authenticated data is acceptable",
+ "Non-authenticated data is unacceptable"));
+ }
+ if (flags & F_RESPONSE) {
+ proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s",
decode_enumerated_bitfield(flags, F_RCODE,
2*8, rcode_vals, "%s"));
}