From 9d4f43ae500a3a3ecc6058f87647322793b4c7c8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 26 Apr 2001 14:03:39 +0000 Subject: Update. * nis/nss-nisplus.h: Move niserr2nss_tab definition into separate file and rename to __niserr2nss_tab. Change NISERR_COUNT into variable __niserr2nss_count. * nis/nss-nisplus.c: New file. (libnss_nisplus-routines): Add nss-nisplus. * nss_nisplus/nisplus-alias.c: Remove unnecessary initializations. * nss_nisplus/nisplus-ethers.c: Likewise. * nss_nisplus/nisplus-grp.c: Likewise. * nss_nisplus/nisplus-hosts.c: Likewise. * nss_nisplus/nisplus-network.c: Likewise. * nss_nisplus/nisplus-proto.c: Likewise. * nss_nisplus/nisplus-pwd.c: Likewise. * nss_nisplus/nisplus-rpc.c: Likewise. * nss_nisplus/nisplus-service.c: Likewise. * nss_nisplus/nisplus-spwd.c: Likewise. --- ChangeLog | 16 +++++++++++ nis/Makefile | 3 ++- nis/nss-nisplus.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ nis/nss-nisplus.h | 58 +++------------------------------------- 4 files changed, 101 insertions(+), 55 deletions(-) create mode 100644 nis/nss-nisplus.c diff --git a/ChangeLog b/ChangeLog index f16b9d6..38b42b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,8 +7,24 @@ and rename to __yperr2nss_tab. Change YPERR_COUNT into variable __yperr2nss_count. * nis/nss-nis.c: New file. + * nis/nss-nisplus.h: Move niserr2nss_tab definition into separate file + and rename to __niserr2nss_tab. Change NISERR_COUNT into variable + __niserr2nss_count. + * nis/nss-nisplus.c: New file. * nis/Makefile (libnss_compat-routines): Add nss-nis. (libnss_nis-routines): Likewise. + (libnss_nisplus-routines): Add nss-nisplus. + + * nss_nisplus/nisplus-alias.c: Remove unnecessary initializations. + * nss_nisplus/nisplus-ethers.c: Likewise. + * nss_nisplus/nisplus-grp.c: Likewise. + * nss_nisplus/nisplus-hosts.c: Likewise. + * nss_nisplus/nisplus-network.c: Likewise. + * nss_nisplus/nisplus-proto.c: Likewise. + * nss_nisplus/nisplus-pwd.c: Likewise. + * nss_nisplus/nisplus-rpc.c: Likewise. + * nss_nisplus/nisplus-service.c: Likewise. + * nss_nisplus/nisplus-spwd.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: Some more optimizations. Patch by Jakub Jelinek . diff --git a/nis/Makefile b/nis/Makefile index 94a7414..f1bf01c 100644 --- a/nis/Makefile +++ b/nis/Makefile @@ -62,7 +62,8 @@ libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ nss-nis libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes)) -libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser +libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser \ + nss-nisplus libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) include ../Rules diff --git a/nis/nss-nisplus.c b/nis/nss-nisplus.c new file mode 100644 index 0000000..731017d --- /dev/null +++ b/nis/nss-nisplus.c @@ -0,0 +1,79 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Thorsten Kukuk , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include + +#include "nss-nisplus.h" +#include "nsswitch.h" + + +/* Convert NIS+ error number to NSS error number. */ +const enum nss_status __niserr2nss_tab[] = +{ + [NIS_SUCCESS] = NSS_STATUS_SUCCESS, + [NIS_S_SUCCESS] = NSS_STATUS_SUCCESS, + [NIS_NOTFOUND] = NSS_STATUS_NOTFOUND, + [NIS_S_NOTFOUND] = NSS_STATUS_NOTFOUND, + [NIS_CACHEEXPIRED] = NSS_STATUS_UNAVAIL, + [NIS_NAMEUNREACHABLE] = NSS_STATUS_UNAVAIL, + [NIS_UNKNOWNOBJ] = NSS_STATUS_NOTFOUND, + [NIS_TRYAGAIN] = NSS_STATUS_TRYAGAIN, + [NIS_SYSTEMERROR] = NSS_STATUS_UNAVAIL, + [NIS_CHAINBROKEN] = NSS_STATUS_UNAVAIL, + [NIS_PERMISSION] = NSS_STATUS_UNAVAIL, + [NIS_NOTOWNER] = NSS_STATUS_UNAVAIL, + [NIS_NOT_ME] = NSS_STATUS_UNAVAIL, + [NIS_NOMEMORY] = NSS_STATUS_TRYAGAIN, + [NIS_NAMEEXISTS] = NSS_STATUS_UNAVAIL, + [NIS_NOTMASTER] = NSS_STATUS_UNAVAIL, + [NIS_INVALIDOBJ] = NSS_STATUS_UNAVAIL, + [NIS_BADNAME] = NSS_STATUS_UNAVAIL, + [NIS_NOCALLBACK] = NSS_STATUS_UNAVAIL, + [NIS_CBRESULTS] = NSS_STATUS_UNAVAIL, + [NIS_NOSUCHNAME] = NSS_STATUS_NOTFOUND, + [NIS_NOTUNIQUE] = NSS_STATUS_UNAVAIL, + [NIS_IBMODERROR] = NSS_STATUS_UNAVAIL, + [NIS_NOSUCHTABLE] = NSS_STATUS_UNAVAIL, + [NIS_TYPEMISMATCH] = NSS_STATUS_UNAVAIL, + [NIS_LINKNAMEERROR] = NSS_STATUS_UNAVAIL, + [NIS_PARTIAL] = NSS_STATUS_NOTFOUND, + [NIS_TOOMANYATTRS] = NSS_STATUS_UNAVAIL, + [NIS_RPCERROR] = NSS_STATUS_UNAVAIL, + [NIS_BADATTRIBUTE] = NSS_STATUS_UNAVAIL, + [NIS_NOTSEARCHABLE] = NSS_STATUS_UNAVAIL, + [NIS_CBERROR] = NSS_STATUS_UNAVAIL, + [NIS_FOREIGNNS] = NSS_STATUS_UNAVAIL, + [NIS_BADOBJECT] = NSS_STATUS_UNAVAIL, + [NIS_NOTSAMEOBJ] = NSS_STATUS_UNAVAIL, + [NIS_MODFAIL] = NSS_STATUS_UNAVAIL, + [NIS_BADREQUEST] = NSS_STATUS_UNAVAIL, + [NIS_NOTEMPTY] = NSS_STATUS_UNAVAIL, + [NIS_COLDSTART_ERR] = NSS_STATUS_UNAVAIL, + [NIS_RESYNC] = NSS_STATUS_UNAVAIL, + [NIS_FAIL] = NSS_STATUS_UNAVAIL, + [NIS_UNAVAIL] = NSS_STATUS_UNAVAIL, + [NIS_RES2BIG] = NSS_STATUS_UNAVAIL, + [NIS_SRVAUTH] = NSS_STATUS_UNAVAIL, + [NIS_CLNTAUTH] = NSS_STATUS_UNAVAIL, + [NIS_NOFILESPACE] = NSS_STATUS_UNAVAIL, + [NIS_NOPROC] = NSS_STATUS_UNAVAIL, + [NIS_DUMPLATER] = NSS_STATUS_UNAVAIL +}; +const unsigned int __niserr2nss_count = (sizeof (__niserr2nss_tab) + / sizeof (__niserr2nss_tab[0])); diff --git a/nis/nss-nisplus.h b/nis/nss-nisplus.h index f2247c7..436a2e6 100644 --- a/nis/nss-nisplus.h +++ b/nis/nss-nisplus.h @@ -26,65 +26,15 @@ /* Convert NIS+ error number to NSS error number. */ -static enum nss_status niserr2nss_tab[] = -{ - [NIS_SUCCESS] = NSS_STATUS_SUCCESS, - [NIS_S_SUCCESS] = NSS_STATUS_SUCCESS, - [NIS_NOTFOUND] = NSS_STATUS_NOTFOUND, - [NIS_S_NOTFOUND] = NSS_STATUS_NOTFOUND, - [NIS_CACHEEXPIRED] = NSS_STATUS_UNAVAIL, - [NIS_NAMEUNREACHABLE] = NSS_STATUS_UNAVAIL, - [NIS_UNKNOWNOBJ] = NSS_STATUS_NOTFOUND, - [NIS_TRYAGAIN] = NSS_STATUS_TRYAGAIN, - [NIS_SYSTEMERROR] = NSS_STATUS_UNAVAIL, - [NIS_CHAINBROKEN] = NSS_STATUS_UNAVAIL, - [NIS_PERMISSION] = NSS_STATUS_UNAVAIL, - [NIS_NOTOWNER] = NSS_STATUS_UNAVAIL, - [NIS_NOT_ME] = NSS_STATUS_UNAVAIL, - [NIS_NOMEMORY] = NSS_STATUS_TRYAGAIN, - [NIS_NAMEEXISTS] = NSS_STATUS_UNAVAIL, - [NIS_NOTMASTER] = NSS_STATUS_UNAVAIL, - [NIS_INVALIDOBJ] = NSS_STATUS_UNAVAIL, - [NIS_BADNAME] = NSS_STATUS_UNAVAIL, - [NIS_NOCALLBACK] = NSS_STATUS_UNAVAIL, - [NIS_CBRESULTS] = NSS_STATUS_UNAVAIL, - [NIS_NOSUCHNAME] = NSS_STATUS_NOTFOUND, - [NIS_NOTUNIQUE] = NSS_STATUS_UNAVAIL, - [NIS_IBMODERROR] = NSS_STATUS_UNAVAIL, - [NIS_NOSUCHTABLE] = NSS_STATUS_UNAVAIL, - [NIS_TYPEMISMATCH] = NSS_STATUS_UNAVAIL, - [NIS_LINKNAMEERROR] = NSS_STATUS_UNAVAIL, - [NIS_PARTIAL] = NSS_STATUS_NOTFOUND, - [NIS_TOOMANYATTRS] = NSS_STATUS_UNAVAIL, - [NIS_RPCERROR] = NSS_STATUS_UNAVAIL, - [NIS_BADATTRIBUTE] = NSS_STATUS_UNAVAIL, - [NIS_NOTSEARCHABLE] = NSS_STATUS_UNAVAIL, - [NIS_CBERROR] = NSS_STATUS_UNAVAIL, - [NIS_FOREIGNNS] = NSS_STATUS_UNAVAIL, - [NIS_BADOBJECT] = NSS_STATUS_UNAVAIL, - [NIS_NOTSAMEOBJ] = NSS_STATUS_UNAVAIL, - [NIS_MODFAIL] = NSS_STATUS_UNAVAIL, - [NIS_BADREQUEST] = NSS_STATUS_UNAVAIL, - [NIS_NOTEMPTY] = NSS_STATUS_UNAVAIL, - [NIS_COLDSTART_ERR] = NSS_STATUS_UNAVAIL, - [NIS_RESYNC] = NSS_STATUS_UNAVAIL, - [NIS_FAIL] = NSS_STATUS_UNAVAIL, - [NIS_UNAVAIL] = NSS_STATUS_UNAVAIL, - [NIS_RES2BIG] = NSS_STATUS_UNAVAIL, - [NIS_SRVAUTH] = NSS_STATUS_UNAVAIL, - [NIS_CLNTAUTH] = NSS_STATUS_UNAVAIL, - [NIS_NOFILESPACE] = NSS_STATUS_UNAVAIL, - [NIS_NOPROC] = NSS_STATUS_UNAVAIL, - [NIS_DUMPLATER] = NSS_STATUS_UNAVAIL -}; -#define NISERR_COUNT (sizeof (niserr2nss_tab) / sizeof (niserr2nss_tab[0])) +extern const enum nss_status __niserr2nss_tab[]; +extern const unsigned int __niserr2nss_count; static inline enum nss_status niserr2nss (int errval) { - if ((unsigned int) errval > NISERR_COUNT) + if ((unsigned int) errval > __niserr2nss_count) return NSS_STATUS_UNAVAIL; - return niserr2nss_tab[errval]; + return __niserr2nss_tab[errval]; } #endif /* nis/nss-nisplus.h */ -- cgit v1.1