about summary refs log tree commit diff
path: root/resolv
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-07-19 07:55:27 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-07-19 07:56:57 +0200
commitea9878ec271c791880fcbbe519d70c42f8113750 (patch)
treea26723d85e45c86be9ff7199f954418d34e7ef65 /resolv
parent21a497cc58df2b9b02dc687b97f105335e7a1c50 (diff)
downloadglibc-ea9878ec271c791880fcbbe519d70c42f8113750.tar.gz
glibc-ea9878ec271c791880fcbbe519d70c42f8113750.tar.xz
glibc-ea9878ec271c791880fcbbe519d70c42f8113750.zip
resolv: Move res_query functions into libc
This switches to public symbols without __ prefixes, due to improved
namespace management in glibc.

The script was used with --no-new-version to move the symbols
__res_nquery, __res_nquerydomain, __res_nsearch, __res_query,
__res_querydomain, __res_search, res_query, res_querydomain,
res_search.  The public symbols res_nquery, res_nquerydomain,
res_nsearch, res_ownok, res_query, res_querydomain, res_search
were added with make update-all-abi.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'resolv')
-rw-r--r--resolv/Makefile2
-rw-r--r--resolv/Versions28
-rw-r--r--resolv/res_query.c88
-rw-r--r--resolv/resolv-internal.h4
-rw-r--r--resolv/resolv.h6
5 files changed, 76 insertions, 52 deletions
diff --git a/resolv/Makefile b/resolv/Makefile
index 31658202d3..4ba58dfa96 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -57,6 +57,7 @@ routines := \
   res_mkquery \
   res_nameinquery \
   res_queriesmatch \
+  res_query \
   res_randomid \
   res_send \
   resolv_conf \
@@ -156,7 +157,6 @@ libresolv-routines := \
   res_debug \
   res_hostalias \
   res_isourserver \
-  res_query \
   resolv-deprecated \
   # libresolv-routines
 
diff --git a/resolv/Versions b/resolv/Versions
index e3dd38b3a9..05679d42c1 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -18,6 +18,9 @@ libc {
     hstrerror;
     res_init;
     res_mkquery;
+    res_query;
+    res_querydomain;
+    res_search;
   }
   GLIBC_2.2 {
     __dn_expand;
@@ -26,7 +29,13 @@ libc {
     __res_nclose;
     __res_ninit;
     __res_nmkquery;
+    __res_nquery;
+    __res_nquerydomain;
+    __res_nsearch;
     __res_nsend;
+    __res_query;
+    __res_querydomain;
+    __res_search;
     __res_state;
     _res_hconf;
   }
@@ -69,8 +78,14 @@ libc {
     res_mailok;
     res_mkquery;
     res_nmkquery;
+    res_nquery;
+    res_nquerydomain;
+    res_nsearch;
     res_nsend;
     res_ownok;
+    res_query;
+    res_querydomain;
+    res_search;
     res_send;
   }
   GLIBC_PRIVATE {
@@ -97,6 +112,8 @@ libc {
     __ns_name_unpack;
     __res_context_hostalias;
     __res_context_mkquery;
+    __res_context_query;
+    __res_context_search;
     __res_context_send;
     __res_get_nsaddr;
     __res_iclose;
@@ -157,20 +174,11 @@ libresolv {
     res_gethostbyaddr;
     res_gethostbyname2;
     res_gethostbyname;
-    res_query;
-    res_querydomain;
-    res_search;
     res_send_setqhook;
     res_send_setrhook;
   }
   GLIBC_2.2 {
     __res_hostalias;
-    __res_nquery;
-    __res_nquerydomain;
-    __res_nsearch;
-    __res_query;
-    __res_querydomain;
-    __res_search;
   }
   GLIBC_2.3.2 {
     __p_rcode;
@@ -201,8 +209,6 @@ libresolv {
   GLIBC_PRIVATE {
     __ns_get16;
     __ns_get32;
-    __res_context_query;
-    __res_context_search;
   }
 }
 
diff --git a/resolv/res_query.c b/resolv/res_query.c
index 2457193d31..75b0e5f2f7 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -276,7 +276,7 @@ __res_context_query (struct resolv_context *ctx, const char *name,
  success:
 	return (n);
 }
-libresolv_hidden_def (__res_context_query)
+libc_hidden_def (__res_context_query)
 
 /* Common part of res_nquery and res_query.  */
 static int
@@ -296,23 +296,34 @@ context_query_common (struct resolv_context *ctx,
 }
 
 int
-res_nquery(res_state statp,
-	   const char *name,	/* domain name */
-	   int class, int type,	/* class and type of query */
-	   u_char *answer,	/* buffer to put answer */
-	   int anslen)		/* size of answer buffer */
+___res_nquery (res_state statp,
+	       const char *name,      /* Domain name.  */
+	       int class, int type,   /* Class and type of query.  */
+	       unsigned char *answer, /* Buffer to put answer.  */
+	       int anslen)	      /* Size of answer buffer.  */
 {
   return context_query_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquery, res_nquery, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquery, __res_nquery, GLIBC_2_2);
+#endif
 
 int
-res_query (const char *name, int class, int type,
-	   unsigned char *answer, int anslen)
+___res_query (const char *name, int class, int type,
+	      unsigned char *answer, int anslen)
 {
   return context_query_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_query, res_query, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_query, res_query, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_query, __res_query, GLIBC_2_2);
+#endif
 
 /* Formulate a normal query, send, and retrieve answer in supplied
    buffer.  Return the size of the response on success, -1 on error.
@@ -515,7 +526,7 @@ __res_context_search (struct resolv_context *ctx,
 		RES_SET_H_ERRNO(statp, TRY_AGAIN);
 	return (-1);
 }
-libresolv_hidden_def (__res_context_search)
+libc_hidden_def (__res_context_search)
 
 /* Common part of res_nsearch and res_search.  */
 static int
@@ -535,23 +546,34 @@ context_search_common (struct resolv_context *ctx,
 }
 
 int
-res_nsearch(res_state statp,
-	    const char *name,	/* domain name */
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,	/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nsearch (res_state statp,
+		const char *name,      /* Domain name.  */
+		int class, int type,   /* Class and type of query.  */
+		unsigned char *answer, /* Buffer to put answer.  */
+		int anslen)	       /* Size of answer.  */
 {
   return context_search_common
     (__resolv_context_get_override (statp), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nsearch, res_nsearch, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nsearch, __res_nsearch, GLIBC_2_2);
+#endif
 
 int
-res_search (const char *name, int class, int type,
-	    unsigned char *answer, int anslen)
+___res_search (const char *name, int class, int type,
+	       unsigned char *answer, int anslen)
 {
   return context_search_common
     (__resolv_context_get (), name, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_search, res_search, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_search, res_search, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_search, __res_search, GLIBC_2_2);
+#endif
 
 /*  Perform a call on res_query on the concatenation of name and
     domain.  */
@@ -615,31 +637,33 @@ context_querydomain_common (struct resolv_context *ctx,
 }
 
 int
-res_nquerydomain(res_state statp,
-	    const char *name,
-	    const char *domain,
-	    int class, int type,	/* class and type of query */
-	    u_char *answer,		/* buffer to put answer */
-	    int anslen)		/* size of answer */
+___res_nquerydomain (res_state statp,
+		     const char *name,
+		     const char *domain,
+		     int class, int type, /* Class and type of query.  */
+		     unsigned char *answer, /* Buffer to put answer.  */
+		     int anslen)	    /* Size of answer.  */
 {
   return context_querydomain_common
     (__resolv_context_get_override (statp),
      name, domain, class, type, answer, anslen);
 }
+versioned_symbol (libc, ___res_nquerydomain, res_nquerydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_nquerydomain, __res_nquerydomain, GLIBC_2_2);
+#endif
 
 int
-res_querydomain (const char *name, const char *domain, int class, int type,
-		 unsigned char *answer, int anslen)
+___res_querydomain (const char *name, const char *domain, int class, int type,
+		    unsigned char *answer, int anslen)
 {
   return context_querydomain_common
     (__resolv_context_get (), name, domain, class, type, answer, anslen);
 }
-
-#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
-# undef res_query
-# undef res_querydomain
-# undef res_search
-weak_alias (__res_query, res_query);
-weak_alias (__res_querydomain, res_querydomain);
-weak_alias (__res_search, res_search);
+versioned_symbol (libc, ___res_querydomain, res_querydomain, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_2)
+compat_symbol (libresolv, ___res_querydomain, res_querydomain, GLIBC_2_0);
+#endif
+#if OTHER_SHLIB_COMPAT (libresolv, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libresolv, ___res_querydomain, __res_querydomain, GLIBC_2_2);
 #endif
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index 3cf8a77698..216e47ed42 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -62,13 +62,13 @@ libc_hidden_proto (__res_context_mkquery)
 int __res_context_search (struct resolv_context *, const char *, int, int,
                           unsigned char *, int, unsigned char **,
                           unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_search)
+libc_hidden_proto (__res_context_search)
 
 /* Main resolver query function for use within glibc.  */
 int __res_context_query (struct resolv_context *, const char *, int, int,
                          unsigned char *, int, unsigned char **,
                          unsigned char **, int *, int *, int *);
-libresolv_hidden_proto (__res_context_query)
+libc_hidden_proto (__res_context_query)
 
 /* Internal function used to implement the query and search
    functions.  */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 21c88ca9f8..e7c8d44645 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -168,9 +168,6 @@ __END_DECLS
 #define res_close		__res_close
 #define res_init		__res_init
 #define res_isourserver		__res_isourserver
-#define res_query		__res_query
-#define res_querydomain		__res_querydomain
-#define res_search		__res_search
 
 #ifdef _LIBC
 # define __RESOLV_DEPRECATED
@@ -227,9 +224,6 @@ __END_DECLS
 #define res_nameinquery		__res_nameinquery
 #define res_nclose		__res_nclose
 #define res_ninit		__res_ninit
-#define res_nquery		__res_nquery
-#define res_nquerydomain	__res_nquerydomain
-#define res_nsearch		__res_nsearch
 #define res_queriesmatch	__res_queriesmatch
 #define res_randomid		__res_randomid
 #define sym_ntop		__sym_ntop