From 899d423eaf3f66e59ffffefe40b2ba2137bd0050 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 19 Jun 1998 13:01:35 +0000 Subject: Update. 1998-06-10 Thorsten Kukuk * 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 * 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 * 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 * sysdeps/unix/sysv/linux/sigstack.c (sigstack): Disable for kernels that don't have sigaltstack. --- nss/getXXbyYY_r.c | 4 ++-- nss/getXXent_r.c | 8 ++++---- nss/nsswitch.c | 13 +++++-------- nss/nsswitch.h | 3 +++ 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'nss') 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 */ -- cgit 1.4.1