]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
nss: Use "files dns" as the default for the hosts database (bug 28700)
authorFlorian Weimer <fweimer@redhat.com>
Fri, 17 Dec 2021 11:01:20 +0000 (12:01 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 17 Dec 2021 11:17:18 +0000 (12:17 +0100)
This matches what is currently in nss/nsswitch.conf.  The new ordering
matches what most distributions use in their installed configuration
files.

It is common to add localhost to /etc/hosts because the name does not
exist in the DNS, but is commonly used as a host name.

With the built-in "dns [!UNAVAIL=return] files" default, dns is
searched first and provides an answer for "localhost" (NXDOMAIN).
We never look at the files database as a result, so the contents of
/etc/hosts is ignored.  This means that "getent hosts localhost"
fail without a /etc/nsswitch.conf file, even though the host name
is listed in /etc/hosts.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit b99b0f93ee8762fe53ff65802deb6f00700b9924)

NEWS
manual/nss.texi
nss/XXX-lookup.c
nss/nss_database.c

diff --git a/NEWS b/NEWS
index 693ac78229b6c5a157ea3c49ea73908049b3cf81..6864af471ce6ff812551d3680bab27f66c818d1b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,7 @@ The following bugs are resolved with this release:
   [28607] Masked signals are delivered on thread exit
   [28532] powerpc64[le]: CFI for assembly templated syscalls is incorrect
   [28678] nptl/tst-create1 hangs sporadically
+  [28700] "dns [!UNAVAIL=return] files" NSS default for hosts is not useful
 
 \f
 Version 2.34
index 3aaa7786f8cf3168a7f355ff98a6a2354bcd4221..524d22ad1e7f8ca03e46600de30ae934ee06476f 100644 (file)
@@ -324,9 +324,8 @@ missing.
 
 @cindex default value, and NSS
 For the @code{hosts} and @code{networks} databases the default value is
-@code{dns [!UNAVAIL=return] files}.  I.e., the system is prepared for
-the DNS service not to be available but if it is available the answer it
-returns is definitive.
+@code{files dns}.  I.e., local configuration will override the contents
+of the domain name system (DNS).
 
 The @code{passwd}, @code{group}, and @code{shadow} databases was
 traditionally handled in a special way.  The appropriate files in the
index f1c97f7c8e9d737821d72bf3d8bd7a99894888ef..dbc87868dd408d9f4ba84014fbedcf8e91812302 100644 (file)
@@ -29,7 +29,7 @@
 |* ALTERNATE_NAME - name of another service which is examined in   *|
 |*                  case DATABASE_NAME is not found                *|
 |*                                                                *|
-|* DEFAULT_CONFIG - string for default conf (e.g. "dns files")    *|
+|* DEFAULT_CONFIG - string for default conf (e.g. "files dns")    *|
 |*                                                                *|
 \*******************************************************************/
 
index ab121cb371c087e960f097bdce0c9b51c43d9efb..54561f03287db2e408e76830f85d97ca894f18af 100644 (file)
@@ -80,7 +80,7 @@ enum nss_database_default
 {
  nss_database_default_defconfig = 0, /* "nis [NOTFOUND=return] files".  */
  nss_database_default_compat, /* "compat [NOTFOUND=return] files".  */
- nss_database_default_dns,    /* "dns [!UNAVAIL=return] files".  */
+ nss_database_default_dns,    /* "files dns".  */
  nss_database_default_files,    /* "files".  */
  nss_database_default_nis,    /* "nis".  */
  nss_database_default_nis_nisplus,    /* "nis nisplus".  */
@@ -133,7 +133,7 @@ nss_database_select_default (struct nss_database_default_cache *cache,
 #endif
 
     case nss_database_default_dns:
-      line = "dns [!UNAVAIL=return] files";
+      line = "files dns";
       break;
 
     case nss_database_default_files: