]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
nss-util: silence warning about deprecated RES_USE_INET6 5166/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 1 Feb 2017 00:55:33 +0000 (19:55 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 1 Feb 2017 00:55:33 +0000 (19:55 -0500)
src/nss-resolve/nss-resolve.c: In function ‘_nss_resolve_gethostbyname_r’:
src/nss-resolve/nss-resolve.c:680:13: warning: RES_USE_INET6 is deprecated
 NSS_GETHOSTBYNAME_FALLBACKS(resolve);
             ^~~~~~~~~~~~~~~~~~~~~~~~~

In glibc bz #19582, RES_USE_INET6 was deprecated. This might make sense for
clients, but they didn't take into account nss module implementations which
*must* continue to support the option. glibc internally defines
DEPRECATED_RES_USE_INET6 which can be used without emitting a warning, but
it's not exported publicly. Let's do the same, and just copy the definition
to our header.

src/basic/nss-util.h

index e7844fff964b1b94b4bb412beae018bfea2c3fcf..9d927a8227ccc80c98efecf3039b2dd75d54ca9b 100644 (file)
 
 #define NSS_SIGNALS_BLOCK SIGALRM,SIGVTALRM,SIGPIPE,SIGCHLD,SIGTSTP,SIGIO,SIGHUP,SIGUSR1,SIGUSR2,SIGPROF,SIGURG,SIGWINCH
 
+#ifndef DEPRECATED_RES_USE_INET6
+#  define DEPRECATED_RES_USE_INET6 0x00002000
+#endif
+
 #define NSS_GETHOSTBYNAME_PROTOTYPES(module)            \
 enum nss_status _nss_##module##_gethostbyname4_r(       \
                 const char *name,                       \
@@ -92,7 +96,7 @@ enum nss_status _nss_##module##_gethostbyname_r(        \
                 int *errnop, int *h_errnop) {           \
         enum nss_status ret = NSS_STATUS_NOTFOUND;      \
                                                         \
-        if (_res.options & RES_USE_INET6)               \
+        if (_res.options & DEPRECATED_RES_USE_INET6)    \
                 ret = _nss_##module##_gethostbyname3_r( \
                         name,                           \
                         AF_INET6,                       \