glibc/nss/nss_files/files-pwd.c
Roland McGrath 96bda0ea44 * nss/nss_files/files-network.c: Pass empty for new DB_LOOKUP args.
(DATABASE): Define this instead of DATAFILE.
	* nss/nss_files/files-hosts.c: Likewise.
	(hostbyname): Use LOOKUP_NAME macro.

	* nss/nss_db/db-XXX.c: New file.
	* nss/Makefile (services): Add db.
	(libnss_db-inhibit-o): New variable.
	(libnss_db-routines): New variable.
	(distribute): Append db-XXX.c.
	(libnss_db.so): Depend on libdb.so and libnss_files.so.
	($(libnss_db-routines:%=$(objpfx)%.c)): New static pattern rule.

	* nss/nss_files/files-XXX.c (DB_LOOKUP): Add KEYSIZE and KEYPATTERN
	args, ignored.
	(DATAFILE): New macro.
	* nss/nss_files/files-parse.c (GENERIC): If undefined, define to
	"files-XXX.c".
	* nss/nss_files/files-rpc.c: Include GENERIC instead of "files-XXX.c".
	Pass db key args to DB_LOOKUP.
	(DATAFILE): Macro removed.
	(DATABASE): New macro replaces it, lacks "/etc/" prefix.
	* nss/nss_files/files-service.c: Likewise.
	* nss/nss_files/files-pwd.c: Likewise.
	* nss/nss_files/files-proto.c: Likewise.
	* nss/nss_files/files-grp.c: Likewise.
	* nss/nss_files/files-ethers.c: Likewise.

	* elf/linux-compat.c: File removed.
	* elf/Makefile (distribute): Remove linux-compat.c.
	(ld-linux.so.1): Remove target and associated variables.

	* sunrpc/xdr.c: Remove malloc decl.
	* sunrpc/portmap.c: Likewise.

	* sunrpc/svc_tcp.c (abort): Don't declare.  Instead define as macro
	casting abort to fn returning bool_t.

	* nss/nss_files/files-parse.c [EXTERN_PARSER]: Do an extern decl of
	the parser function.
	[EXTERN_PARSER] (LINE_PARSER): Define to empty.
	* nss/nss_files/files-pwd.c (EXTERN_PARSER): Define it.
	* nss/nss_files/files-grp.c: Likewise.

	* Makeconfig (BUILD_CC): If undefined, define to $(CC).

	* sunrpc/rpc/types.h: Include stdlib.h instead of declaring malloc.

	* Makeconfig (built-program-cmd): Use $(rtld-installed-name) in place
	of ld.so so lookups for that soname find it.

	* nss/Makefile (libnss_dns.so): Depend on libresolv.so.
	(resobjdir, LDLIBS-nss_dns.so): Variables removed.
1996-07-02 19:35:40 +00:00

44 lines
1.4 KiB
C

/* User file parser in nss_files module.
Copyright (C) 1996 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
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., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <pwd.h>
#define STRUCTURE passwd
#define ENTNAME pwent
#define DATABASE "passwd"
struct pwent_data {};
/* Our parser function is already defined in fgetpwent.c, so use that
to parse lines from the database file. */
#define EXTERN_PARSER
#include "files-parse.c"
#include GENERIC
DB_LOOKUP (pwnam, 1 + strlen (name), (".%s", name),
{
if (! strcmp (name, result->pw_name))
break;
}, const char *name)
DB_LOOKUP (pwuid, 20, ("=%lu", (unsigned long int) uid),
{
if (result->pw_uid == uid)
break;
}, uid_t uid)