aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--nis/Makefile4
-rw-r--r--nis/nss12
-rw-r--r--nis/nss_nis/nis-initgroups.c4
4 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a1ea7b725b..ea7f0bbb05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
* nis/nss_nis/nis-initgroups.c: Implement getting the information
from the netid.byname map if the system administrator allows this.
+ * nis/Makefile (distribute): Add nss.
+ * nis/nss: New file.
* grp/initgroups.c (initgroups): Limit the initial allocation to 64
entries to not allocate too much on systems with really high limits.
diff --git a/nis/Makefile b/nis/Makefile
index df85ab2774..9f429ffc65 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 2001, 2004 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@ subdir := nis
headers := $(wildcard rpcsvc/*.[hx])
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
- nisplus-parser.h nis_xdr.h
+ nisplus-parser.h nis_xdr.h nss
# These are the databases available for the nis (and perhaps later nisplus)
# service. This must be a superset of the services in nss.
diff --git a/nis/nss b/nis/nss
new file mode 100644
index 0000000000..338ace50ae
--- /dev/null
+++ b/nis/nss
@@ -0,0 +1,12 @@
+# /etc/default/nss
+# This file can theoretically contain a bunch of customization variables
+# for Name Service Switch in the GNU C library. For now there is only one
+# variable:
+#
+# NETID_AUTHORITATIVE
+# If set to TRUE the initgroups() function will accept the information
+# from the netid.byname NIS map as authoritative. This can speed up the
+# function significantly if the group.byname map is large. The content
+# of the netid.byname map is used AS IS. The system administrator has
+# to make sure it is correctly generated.
+#NETID_AUTHORITATIVE=TRUE
diff --git a/nis/nss_nis/nis-initgroups.c b/nis/nss_nis/nis-initgroups.c
index 4469e4f4d8..e3ba0cd2dd 100644
--- a/nis/nss_nis/nis-initgroups.c
+++ b/nis/nss_nis/nis-initgroups.c
@@ -162,6 +162,10 @@ check_default_nss (void)
while (isspace (*cp))
++cp;
+ /* Recognize comment lines. */
+ if (*cp == '#')
+ continue;
+
static const char netid_authoritative[] = "NETID_AUTHORITATIVE";
if (strncmp (cp, netid_authoritative,
sizeof (netid_authoritative) - 1) != 0)