Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Ulrich Drepper committed Apr 17, 2003
1 parent f542ba5 commit ef4d5b3
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 16 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
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
Expand Down
27 changes: 20 additions & 7 deletions localedata/locales/uk_UA
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ escape_char /
% 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"
Expand All @@ -25,8 +27,8 @@ tel ""
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
Expand All @@ -47,19 +49,30 @@ copy "i18n"
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
Expand Down
4 changes: 4 additions & 0 deletions nscd/nscd.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@

#include "dbg_log.h"
#include "nscd.h"
#include "../nss/nsswitch.h"
#include <device-nrs.h>

/* Get libc version number. */
Expand Down Expand Up @@ -213,6 +214,9 @@ main (int argc, char **argv)
/* 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);

Expand Down
1 change: 1 addition & 0 deletions nss/Versions
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ libc {
}
GLIBC_PRIVATE {
_nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent;
__nss_disable_nscd;
}
}

Expand Down
2 changes: 1 addition & 1 deletion nss/getXXbyYY_r.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
#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)
Expand Down
14 changes: 13 additions & 1 deletion nss/nsswitch.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* 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.
Expand Down Expand Up @@ -39,6 +39,7 @@
#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;
Expand Down Expand Up @@ -696,6 +697,17 @@ nss_new_service (name_database *database, const char *name)
}


/* 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)
{
Expand Down
19 changes: 12 additions & 7 deletions nss/nsswitch.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* 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
Expand Down Expand Up @@ -101,14 +101,15 @@ typedef struct name_database
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
Expand All @@ -123,13 +124,17 @@ 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. */
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 **)
Expand Down

0 comments on commit ef4d5b3

Please sign in to comment.