From 384ca551743318bd9c9e24a496d6397f2e3f2a49 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 30 Oct 2007 00:48:09 +0000 Subject: * nscd/Makefile (nscd-modules): Replace gethstbynm2_r with gethstbynm3_r. * nscd/gethstbynm2_r.c: Remove. * nscd/gethstbynm3_r.c: New file. * nscd/aicache.c (addhstaiX): Use __gethostbyaddr2_r instead of __gethostbyaddr_r. * nscd/gethstbyad_r.c: Generate __gethostbyaddr2_r function. Define __gethostbyaddr_r compatibility wrapper. * nscd/hstcache.c (cache_addhst): Add ttl parameter. Use it when determining timeout of entry. (lookup): Take new parameter and pass it to __gethostbyname3_r and __gethostbyaddr2_r. (addhstbyX): Pass reference to variable for TTL to lookup and cache_addhst. * nss/Versions [glibc] (GLIBC_PRIVATE): Export __nss_passwd_lookup2, __nss_group_lookup2, __nss_hosts_lookup2, __nss_services_lookup2, and __nss_next2. Remove __nss_services_lookup. * nss/XXX-lookup.c: Name function now *_lookup2. Add new parameter. Add compat wrapper. * nss/getXXbyYY_r.c: Changes to call new *_lookup2 functions and __nss_next2. * nss/getXXent_r.c: Likewise. * nss/getnssent_r.c: Likewise. * nss/nsswitch.c (__nss_lookup): Add new parameter. If first function does not exist in module, try the optional second name. (__nss_next2): New function. (__nss_next): Now wrapper around __nss_next2. * nss/nsswitch.h: Adjust __nss_lookup prototype. Declare __nss_next2. Adjust definition of db_lookup_function type. * nss/service-lookup.c: Define NO_COMPAT. * include/netdb.h: Declare __gethostbyaddr2_r and __gethostbyname3_r. * inet/ether_hton.c: Use __nss_next2 instead of __nss_next. * inet/ether_ntoh.c: Likewise. * sunrpc/netname.c: Likewise. * sunrpc/publickey.c: Likewise. * inet/getnetgrent.c: Likewise. Adjust calls to __nss_lookup. * inet/gethstbyad_r.c (DB_LOOKUP_FCT): Change to __nss_hosts_lookup2. * inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise. * inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise. * inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise. * nscd/aicache.c (addhstaiX): Fix default TTL handling. * inet/getnetgrent.c (setup): Encrypt static pointer. --- nss/nsswitch.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'nss/nsswitch.h') diff --git a/nss/nsswitch.h b/nss/nsswitch.h index d222e0d443..b80edef651 100644 --- a/nss/nsswitch.h +++ b/nss/nsswitch.h @@ -110,7 +110,8 @@ libc_hidden_proto (__nss_database_lookup) /* Put first function with name FCT_NAME for SERVICE in FCTP. The position is remembered in NI. The function returns a value < 0 if an error occurred or no such function exists. */ -extern int __nss_lookup (service_user **ni, const char *fct_name, void **fctp); +extern int __nss_lookup (service_user **ni, const char *fct_name, + const char *fct2_name, void **fctp) attribute_hidden; /* Determine the next step in the lookup process according to the result STATUS of the call to the last function returned by @@ -125,9 +126,12 @@ extern int __nss_lookup (service_user **ni, const char *fct_name, void **fctp); services. In other words, only if all four lookup results have the action RETURN associated the lookup process stops before the natural end. */ +extern int __nss_next2 (service_user **ni, const char *fct_name, + const char *fct2_name, void **fctp, int status, + int all_values) attribute_hidden; +libc_hidden_proto (__nss_next2) extern int __nss_next (service_user **ni, const char *fct_name, void **fctp, int status, int all_values); -libc_hidden_proto (__nss_next) /* Search for the service described in NI for a function named FCT_NAME and return a pointer to this function if successful. */ @@ -139,7 +143,8 @@ libc_hidden_proto (__nss_lookup_function) extern void __nss_disable_nscd (void); -typedef int (*db_lookup_function) (service_user **, const char *, void **) +typedef int (*db_lookup_function) (service_user **, const char *, const char *, + void **) internal_function; typedef enum nss_status (*setent_function) (int); typedef enum nss_status (*endent_function) (void); -- cgit 1.4.1