This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH COMMITTED] resolv: Deprecate unimplemented flags


RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG result
in compile-time warnings.  Some of these flags are still used in
applications.

2016-10-07  Florian Weimer  <fweimer@redhat.com>

	resolv: Deprecate unimplemented flags.
	* misc/sys/cdefs.h (__glibc_macro_warning1)
	(__glibc_macro_warning): Define.
	* resolv/resolv.h (RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME)
	(RES_KEEPTSIG): Mark as deprecated.
	* resolv/res_debug.c (p_option): Remove RES_AAONLY, RES_PRIMARY,
	RES_NOCHECKNAME, RES_KEEPTSIG.
	* resolv/res_init.c (res_setoptions): Remove RES_NOCHECKNAME handling.

diff --git a/NEWS b/NEWS
index b077d0a..be66f23 100644
--- a/NEWS
+++ b/NEWS
@@ -59,6 +59,10 @@ Version 2.25
   for the Linux quota interface which predates kernel version 2.4.22 has
   been removed.
 
+* The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG defined
+  in the <resolv.h> header file have been deprecated.  They were already
+  unimplemented.
+
 * DNSSEC-related declarations and definitions have been removed from the
   <arpa/nameser.h> header file, and libresolv will no longer attempt to
   decode the data part of DNSSEC record types.  Previous versions of glibc
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 935a94b..50e00e6 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -472,4 +472,14 @@
 # endif
 #endif
 
+/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE.  This is
+   intended for use in preprocessor macros.  */
+#if __GNUC_PREREQ (4,8)
+# define __glibc_macro_warning1(message) _Pragma (#message)
+# define __glibc_macro_warning(message) \
+  __glibc_macro_warning1 (GCC warning message)
+#else
+# define __glibc_macro_warning(msg)
+#endif
+
 #endif	 /* sys/cdefs.h */
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 9b33e19..825e8a6 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -546,9 +546,7 @@ p_option(u_long option) {
 	switch (option) {
 	case RES_INIT:		return "init";
 	case RES_DEBUG:		return "debug";
-	case RES_AAONLY:	return "aaonly(unimpl)";
 	case RES_USEVC:		return "use-vc";
-	case RES_PRIMARY:	return "primry(unimpl)";
 	case RES_IGNTC:		return "igntc";
 	case RES_RECURSE:	return "recurs";
 	case RES_DEFNAMES:	return "defnam";
@@ -559,8 +557,6 @@ p_option(u_long option) {
 	case RES_NOALIASES:	return "noaliases";
 	case RES_USE_INET6:	return "inet6";
 	case RES_ROTATE:	return "rotate";
-	case RES_NOCHECKNAME:	return "no-check-names(unimpl)";
-	case RES_KEEPTSIG:	return "keeptsig(unimpl)";
 	case RES_BLAST:		return "blast";
 	case RES_USEBSTRING:	return "ip6-bytestring";
 	case RES_NOIP6DOTINT:	return "no-ip6-dotint";
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 0a01fd5..1cfa4e6 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -442,7 +442,6 @@ res_setoptions(res_state statp, const char *options, const char *source) {
 		    { STRnLEN ("no-ip6-dotint"), 0, RES_NOIP6DOTINT },
 		    { STRnLEN ("ip6-dotint"), 1, ~RES_NOIP6DOTINT },
 		    { STRnLEN ("rotate"), 0, RES_ROTATE },
-		    { STRnLEN ("no-check-names"), 0, RES_NOCHECKNAME },
 		    { STRnLEN ("edns0"), 0, RES_USE_EDNS0 },
 		    { STRnLEN ("single-request-reopen"), 0, RES_SNGLKUPREOP },
 		    { STRnLEN ("single-request"), 0, RES_SNGLKUP },
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 58c3c38..9146258 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -177,9 +177,11 @@ struct res_sym {
  */
 #define RES_INIT	0x00000001	/* address initialized */
 #define RES_DEBUG	0x00000002	/* print debug messages */
-#define RES_AAONLY	0x00000004	/* authoritative answers only (!IMPL)*/
+#define RES_AAONLY \
+  __glibc_macro_warning ("RES_AAONLY is deprecated") 0x00000004
 #define RES_USEVC	0x00000008	/* use virtual circuit */
-#define RES_PRIMARY	0x00000010	/* query primary server only (!IMPL) */
+#define RES_PRIMARY \
+  __glibc_macro_warning ("RES_PRIMARY is deprecated") 0x00000010
 #define RES_IGNTC	0x00000020	/* ignore trucation errors */
 #define RES_RECURSE	0x00000040	/* recursion desired */
 #define RES_DEFNAMES	0x00000080	/* use default domain name */
@@ -190,8 +192,10 @@ struct res_sym {
 #define	RES_NOALIASES	0x00001000	/* shuts off HOSTALIASES feature */
 #define	RES_USE_INET6	0x00002000	/* use/map IPv6 in gethostbyname() */
 #define RES_ROTATE	0x00004000	/* rotate ns list after each query */
-#define	RES_NOCHECKNAME	0x00008000	/* do not check names for sanity (!IMPL) */
-#define	RES_KEEPTSIG	0x00010000	/* do not strip TSIG records */
+#define	RES_NOCHECKNAME \
+  __glibc_macro_warning ("RES_NOCHECKNAME is deprecated") 0x00008000
+#define	RES_KEEPTSIG \
+  __glibc_macro_warning ("RES_KEEPTSIG is deprecated") 0x00010000
 #define	RES_BLAST	0x00020000	/* blast all recursive servers */
 #define RES_USEBSTRING	0x00040000	/* IPv6 reverse lookup with byte
 					   strings */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]