+2003-04-17 Ulrich Drepper <drepper@redhat.com>
+
+ * nss/getXXbyYY_r.c [USE_NSCD] (REENTRANT_NAME): Only retry
+ contacting nscd if NOT_USENSCD_NAME > 0.
+ * nss/nsswitch.c (__nss_disable_nscd): New function.
+ * nss/nsswitch.h: Declare it.
+ * nss/Versions [GLIBC_PRIVATE]: Export __nss_disable_nscd.
+ * nscd/nscd.c (main): Call __nss_disable_nscd.
+
2003-04-16 Ulrich Drepper <drepper@redhat.com>
* stdio-common/perror.c (perror): We don't need to set the offset
% Charset: KOI8-U
% Distribution and use is free, also
% for commercial purposes.
+%
+% Some collate fixes by Valentyn Solomko vesna@slovnyk.org
LC_IDENTIFICATION
title "Ukrainian locale for Ukraine"
fax ""
language "Ukrainian"
territory "Ukraine"
-revision "1.0"
-date "2000-06-29"
+revision "1.3"
+date "2003-01-31"
%
category "uk_UA:2000";LC_IDENTIFICATION
category "uk_UA:2000";LC_CTYPE
END LC_CTYPE
LC_COLLATE
+
copy "iso14651_t1"
% iso14651_t1 is missing Ukrainian ghe
collating-symbol <UKR-GHE>
-reorder-after <CYR-GZHE>
+reorder-after <CYR-GHE>
<UKR-GHE>
-reorder-after <U0453>
-<U0491> <UKR-GHE>;<BAS>;<MIN>;IGNORE
+reorder-after <U0433>
+% <U0491> <UKR-GHE>;<BAS>;<MIN>;IGNORE
+<U0491> <CYR-GHE>;<UKR-GHE>;<MIN>;IGNORE
+
+reorder-after <U0438>
+% <U0456> <UKR-I>;<BAS>;<MIN>;IGNORE
+<U0456> <CYR-I>;<UKR-I>;<MIN>;IGNORE
+
+reorder-after <U0413>
+% <U0490> <UKR-GHE>;<BAS>;<CAP>;IGNORE
+<U0490> <CYR-GHE>;<UKR-GHE>;<CAP>;IGNORE
-reorder-after <U0403>
-<U0490> <UKR-GHE>;<BAS>;<CAP>;IGNORE
+reorder-after <U0418>
+% <U0406> <UKR-I>;<BAS>;<CAP>;IGNORE
+<U0406> <CYR-I>;<UKR-I>;<CAP>;IGNORE
reorder-end
END LC_COLLATE
#include "dbg_log.h"
#include "nscd.h"
+#include "../nss/nsswitch.h"
#include <device-nrs.h>
/* Get libc version number. */
/* Cleanup files created by a previous `bind'. */
unlink (_PATH_NSCDSOCKET);
+ /* Make sure we do not get recursive calls. */
+ __nss_disable_nscd ();
+
/* Init databases. */
nscd_init (conffile);
}
GLIBC_PRIVATE {
_nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent;
+ __nss_disable_nscd;
}
}
#endif
#ifdef USE_NSCD
- if (NOT_USENSCD_NAME && ++NOT_USENSCD_NAME > NSS_NSCD_RETRY)
+ if (NOT_USENSCD_NAME > 0 && ++NOT_USENSCD_NAME > NSS_NSCD_RETRY)
NOT_USENSCD_NAME = 0;
if (!NOT_USENSCD_NAME)
-/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
#endif
#include "nsswitch.h"
+#include "../nscd/nscd_proto.h"
/* Prototypes for the local functions. */
static name_database *nss_parse_file (const char *fname) internal_function;
}
+/* Called by nscd and nscd alone. */
+void
+__nss_disable_nscd (void)
+{
+ /* Disable all uses of NSCD. */
+ __nss_not_use_nscd_passwd = -1;
+ __nss_not_use_nscd_group = -1;
+ __nss_not_use_nscd_hosts = -1;
+}
+
+
/* Free all resources if necessary. */
libc_freeres_fn (free_mem)
{
-/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999,2001,2002,2003 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
If there is no configuration for this database in the file,
parse a service list from DEFCONFIG and use that. More
than one function can use the database. */
-int __nss_database_lookup (const char *database, const char *alternative_name,
- const char *defconfig, service_user **ni);
+extern int __nss_database_lookup (const char *database,
+ const char *alternative_name,
+ const char *defconfig, service_user **ni);
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. */
-int __nss_lookup (service_user **ni, const char *fct_name, void **fctp);
+extern int __nss_lookup (service_user **ni, const char *fct_name, void **fctp);
/* Determine the next step in the lookup process according to the
result STATUS of the call to the last function returned by
services. In other words, only if all four lookup results have
the action RETURN associated the lookup process stops before the
natural end. */
-int __nss_next (service_user **ni, const char *fct_name, void **fctp,
- int status, int all_values);
+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. */
-void *__nss_lookup_function (service_user *ni, const char *fct_name);
+extern void *__nss_lookup_function (service_user *ni, const char *fct_name);
+
+
+/* Called by NSCD to disable recursive calls. */
+extern void __nss_disable_nscd (void);
typedef int (*db_lookup_function) (service_user **, const char *, void **)