summary refs log tree commit diff
path: root/nss
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-19 13:01:35 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-19 13:01:35 +0000
commit899d423eaf3f66e59ffffefe40b2ba2137bd0050 (patch)
tree47028b40d388f051f651e752877c8b73cf826929 /nss
parent977bfd77e6cd739c82491fa9fe4b54b269ea349d (diff)
downloadglibc-899d423eaf3f66e59ffffefe40b2ba2137bd0050.tar.gz
glibc-899d423eaf3f66e59ffffefe40b2ba2137bd0050.tar.xz
glibc-899d423eaf3f66e59ffffefe40b2ba2137bd0050.zip
Update.
1998-06-10  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/Makefile: Add nis-initgroups and compat-initgroups.
	* nis/libnss_compat.map: Add _nss_compat_initgroups.
	* nis/libnss_nis.map: Add _nss_nis_initgroups.
	* nis/nss_compat/compat-initgroups.c: New, faster then getgrent().
	* nis/nss_nis/nis-initgroups.c: Likewise.
	* libc-work/nss/nsswitch.c: Rename nss_lookup_function to
	__nss_lookup_function and make it public.
	* grp/initgroups.c: Rewrite, to use initgroups function from NSS
	module if exists, else use old method.

1998-06-19  Ulrich Drepper  <drepper@cygnus.com>

	* nss/getXXbyYY_r.c (lookup_function): Correct return in type
	definition.
	* nss/getXXent_r.c (set_function, end_function, get_function):
	Likewise.  Reported by Thorsten Kukuk.

	* sysdeps/unix/sysv/linux/sigstack.c: Mark sigstack as dangerous.

1998-06-19  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/sparc/Dist: Follow change from
	1998-06-16 and distribute kernel_termios.h.

	* nis/Makefile (distribute): Add nis_xdr.h.

1998-06-19  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/sigstack.c (sigstack): Disable for
	kernels that don't have sigaltstack.
Diffstat (limited to 'nss')
-rw-r--r--nss/getXXbyYY_r.c4
-rw-r--r--nss/getXXent_r.c8
-rw-r--r--nss/nsswitch.c13
-rw-r--r--nss/nsswitch.h3
4 files changed, 14 insertions, 14 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
index c8d6b08009..0f1206762b 100644
--- a/nss/getXXbyYY_r.c
+++ b/nss/getXXbyYY_r.c
@@ -82,8 +82,8 @@
 
 
 /* Type of the lookup function we need here.  */
-typedef int (*lookup_function) (ADD_PARAMS, LOOKUP_TYPE *, char *, size_t,
-				int * H_ERRNO_PARM);
+typedef enum nss_status (*lookup_function) (ADD_PARAMS, LOOKUP_TYPE *, char *,
+					    size_t, int * H_ERRNO_PARM);
 
 /* Some usages of this file might use this variable.  */
 extern struct __res_state _res;
diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c
index 02a723d6bc..4e2902d2ca 100644
--- a/nss/getXXent_r.c
+++ b/nss/getXXent_r.c
@@ -85,14 +85,14 @@
 #endif
 
 /* Prototype for the setXXXent functions we use here.  */
-typedef int (*set_function) (STAYOPEN);
+typedef enum nss_status (*set_function) (STAYOPEN);
 
 /* Prototype for the endXXXent functions we use here.  */
-typedef int (*end_function) (void);
+typedef enum nss_status (*end_function) (void);
 
 /* Prototype for the setXXXent functions we use here.  */
-typedef int (*get_function) (LOOKUP_TYPE *, char *, size_t, int *
-			     H_ERRNO_PARM);
+typedef enum nss_status (*get_function) (LOOKUP_TYPE *, char *, size_t, int *
+					 H_ERRNO_PARM);
 
 
 /* This handle for the NSS data base is shared between all
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index c968502cdf..f010d2755c 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -35,8 +35,6 @@
 #include "nsswitch.h"
 
 /* Prototypes for the local functions.  */
-static void *nss_lookup_function (service_user *ni, const char *fct_name)
-     internal_function;
 static name_database *nss_parse_file (const char *fname) internal_function;
 static name_database_entry *nss_getline (char *line) internal_function;
 static service_user *nss_parse_service_list (const char *line)
@@ -140,7 +138,7 @@ __nss_database_lookup (const char *database, const char *alternate_name,
 int
 __nss_lookup (service_user **ni, const char *fct_name, void **fctp)
 {
-  *fctp = nss_lookup_function (*ni, fct_name);
+  *fctp = __nss_lookup_function (*ni, fct_name);
 
   while (*fctp == NULL
 	 && nss_next_action (*ni, NSS_STATUS_UNAVAIL) == NSS_ACTION_CONTINUE
@@ -148,7 +146,7 @@ __nss_lookup (service_user **ni, const char *fct_name, void **fctp)
     {
       *ni = (*ni)->next;
 
-      *fctp = nss_lookup_function (*ni, fct_name);
+      *fctp = __nss_lookup_function (*ni, fct_name);
     }
 
   return *fctp != NULL ? 0 : (*ni)->next == NULL ? 1 : -1;
@@ -187,7 +185,7 @@ __nss_next (service_user **ni, const char *fct_name, void **fctp, int status,
     {
       *ni = (*ni)->next;
 
-      *fctp = nss_lookup_function (*ni, fct_name);
+      *fctp = __nss_lookup_function (*ni, fct_name);
     }
   while (*fctp == NULL
 	 && nss_next_action (*ni, NSS_STATUS_UNAVAIL) == NSS_ACTION_CONTINUE
@@ -310,9 +308,8 @@ known_compare (const void *p1, const void *p2)
 }
 
 
-static void *
-internal_function
-nss_lookup_function (service_user *ni, const char *fct_name)
+void *
+__nss_lookup_function (service_user *ni, const char *fct_name)
 {
   void **found, *result;
 
diff --git a/nss/nsswitch.h b/nss/nsswitch.h
index 412936976a..cb16fe1542 100644
--- a/nss/nsswitch.h
+++ b/nss/nsswitch.h
@@ -127,5 +127,8 @@ int __nss_lookup (service_user **ni, const char *fct_name, void **fctp);
 int __nss_next (service_user **ni, const char *fct_name, void **fctp,
 		int status, int all_values);
 
+/* Search for the service described in NI for a function named FCT_NAME
+   and return a pointer to this function if successful.  */
+void *__nss_lookup_function (service_user *ni, const char *fct_name);
 
 #endif	/* nsswitch.h */