From be728303a6bcf7d2cf8d6c6ccc56d98d65309b81 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 21 Sep 2016 16:27:14 +0200
Subject: <arpa/nameser.h>: Remove RR type classification macros [BZ #20592]

The macros are no longer up-to-date, and the classification is not
useful.  In this particular case, removal without prior deprecation
seems the right approach.
---
 ChangeLog             |  7 +++++++
 NEWS                  |  6 ++++++
 resolv/arpa/nameser.h | 11 -----------
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 607ab50..5ee2403 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2016-09-21  Florian Weimer  <fweimer@redhat.com>
 
+	[BZ #20592]
+	Remove RR type classification macros.
+	* resolv/arpa/nameser.h (ns_t_qt_p, ns_t_mrr_p, ns_t_rr_p)
+	(ns_t_udp_p, ns_t_xfr_p): Remove.
+
+2016-09-21  Florian Weimer  <fweimer@redhat.com>
+
 	Remove misleading version information.
 	* resolv/arpa/nameser.h (__NAMESER): Remove.
 	* resolv/arpa/nameser_compat.h (__BIND): Remove.
diff --git a/NEWS b/NEWS
index 5f7fc07..26b8045 100644
--- a/NEWS
+++ b/NEWS
@@ -50,6 +50,12 @@ Version 2.25
   only implemented minimal support for the previous version of DNSSEC, which
   is incompatible with the currently deployed version.
 
+* The resource record type classification macros ns_t_qt_p, ns_t_mrr_p,
+  ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the
+  <arpa/nameser.h> header file because the distinction between RR types and
+  meta-RR types is not officially standardized, subject to revision, and
+  thus not suitable for encoding in a macro.
+
 Security related changes:
 
   On ARM EABI (32-bit), generating a backtrace for execution contexts which
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index f11b9f0..a866ce8 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -283,17 +283,6 @@ typedef enum __ns_type {
 	ns_t_max = 65536
 } ns_type;
 
-/* Exclusively a QTYPE? (not also an RTYPE) */
-#define	ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
-		      (t) == ns_t_mailb || (t) == ns_t_maila)
-/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */
-#define	ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
-/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */
-#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
-#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
-#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
-		       (t) == ns_t_zxfr)
-
 /*%
  * Values for class field
  */
-- 
cgit v1.1