diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | nis/Makefile | 4 | ||||
-rw-r--r-- | nis/nss | 12 | ||||
-rw-r--r-- | nis/nss_nis/nis-initgroups.c | 4 |
4 files changed, 20 insertions, 2 deletions
@@ -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 df85ab2..9f429ff 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. @@ -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 4469e4f..e3ba0cd 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) |