From 26761c287fdf4a9997b7c62b5c64cec84ce2c329 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 14 Nov 1996 02:04:07 +0000 Subject: update from main archive 961113 Thu Nov 14 02:00:33 1996 Ulrich Drepper * inet/Makefile (headers): Add aliases.h. (routines): Add getaliasent_r, getaliasent, getaliasname, and getaliasname_r. * aliases.h: New file. * inet/aliases.h: New file. * inet/getaliasent.c: New file. * inet/getaliasent_r.c: New file. * inet/getaliasname.c: New file. * inet/getaliasname_r.c: New file. * nss/Makefile (databases): Add alias. * nss/alias-lookup.c: New file. * nss/databases.def: Add aliases and publickey. * nss/nss_db/db-alias.c: New file. * nss/nss_files/files-alias.c: New file. * inet/getnetgrent_r.c (__internal_getnetgrent): Buffer length argument to lookup function is of type size_t. (innetgr): Likewise. * nss/getXXbyYY_r.c: Likewise. * nss/getXXent_r.c: Likewise. * nss/nss_db/db-XXX.c: Likewise. * nss/getXXbyYY.c: Don't provide static buffer. Resize if call failed because buffer was too small. * nss/getXXent.c: Likewise. * nss/nss_files/files-XXX.c: Correct handling of shared file. The getXXent_r function now uses f[gs]etpos to get to the correct position. * nss/nss_files/files-parse.c: Indent lines for better readability. * malloc/obstack.c: Add new variable obstack_alloc_failed_handler and new function print_and_abort. Remove all references to alloc_failed field. Add new function _obstack_memory_used. * malloc/obstack.h (struct obstack): Remove field alloc_field. Remove all references to alloc_failed field. Add prototype for _obstack_memory_used. * posix/unistd.h: Correct typo. Wed Nov 13 03:09:16 1996 Ulrich Drepper * configure.in: Require at least autoconf-2.10.2. Tue Nov 12 03:35:01 1996 Christian von Roques * malloc/obstack.h: Add new macro `obstack_make_room'. * malloc/obstack.c: Add function implementation for `obstack_make_room'. Mon Nov 11 13:54:04 1996 Ulrich Drepper Update to BIND-4.9.5-REL. * resolv/Banner: Set to 4.9.5-REL. * resolv/inet_net_pton.c: Was doing bad things to subnets and b'casts. * resolv/res_debug.c (__fp_nquery): Could read past end of buffer. (fix from BIND 8.1) * config.make.in: Add definition for top_absdir. * Makerules (make-link): Fix path to rellns-sh script. Sat Nov 9 02:15:24 1996 Andreas Schwab * posix/unistd.h: Fix comment. * manual/arith.texi: Fix misspellings. Use `zero', not `null', when talking about numbers. * manual/users.texi: Likewise. * manual/creature.texi: Likewise. Use @defvarx for a secondary description header. Sat Nov 9 19:25:11 1996 Andreas Schwab * sysdeps/posix/Makefile ($(common-objpfx)mk-stdiolim): Depend on the real posix1_lim.h file so that it works in all subdirs, not only in posix. Sat Nov 9 02:08:34 1996 Andreas Schwab * Makefile ($(includedir)/gnu/lib-names.h): Quote arguments of tr. Sat Nov 9 02:06:17 1996 Andreas Schwab * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Don't depend on $(before-compile) which hasn't been properly setup yet at this point. Sat Nov 9 02:02:48 1996 Andreas Schwab * sysdeps/generic/sigset.h: Don't use implicit int which will probably require a diagnostic in the next revision of the C standard. * sysdeps/stub/lockfile.c: Likewise. Sat Nov 9 01:57:17 1996 Andreas Schwab * sysdeps/unix/sysv/linux/m68k/syscall.S: Correct last change. * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise. Mon Nov 11 02:53:14 1996 Ulrich Drepper * time/strftime.c: Update copyright. Small cosmetic changes. char *' and `int'. PROJ_ID are used. --- inet/Makefile | 12 +++++----- inet/aliases.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ inet/getaliasent.c | 26 ++++++++++++++++++++++ inet/getaliasent_r.c | 29 ++++++++++++++++++++++++ inet/getaliasname.c | 30 +++++++++++++++++++++++++ inet/getaliasname_r.c | 29 ++++++++++++++++++++++++ inet/getnetgrent_r.c | 4 ++-- 7 files changed, 184 insertions(+), 7 deletions(-) create mode 100644 inet/aliases.h create mode 100644 inet/getaliasent.c create mode 100644 inet/getaliasent_r.c create mode 100644 inet/getaliasname.c create mode 100644 inet/getaliasname_r.c (limited to 'inet') diff --git a/inet/Makefile b/inet/Makefile index c09db18..dd50211 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -12,9 +12,9 @@ # 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. +# 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. # # Sub-makefile for inet portion of the library. @@ -22,7 +22,8 @@ subdir := inet headers := netinet/ether.h netinet/in.h netinet/if_ether.h \ - netinet/tcp.h $(wildcard arpa/*.h protocols/*.h) + netinet/tcp.h $(wildcard arpa/*.h protocols/*.h) \ + aliases.h distribute := netgroup.h @@ -41,7 +42,8 @@ routines := ntohl ntohs htonl htons \ ether_aton ether_aton_r ether_hton ether_line \ ether_ntoa ether_ntoa_r ether_ntoh \ rcmd rexec ruserpass \ - getnetgrent_r getnetgrent + getnetgrent_r getnetgrent \ + getaliasent_r getaliasent getaliasname getaliasname_r # No warnings about losing BSD code. override +gccwarn := -w diff --git a/inet/aliases.h b/inet/aliases.h new file mode 100644 index 0000000..9489508 --- /dev/null +++ b/inet/aliases.h @@ -0,0 +1,61 @@ +/* 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _ALIASES_H + +#define _ALIASES_H 1 +#include + +#include + + +/* Structure to represent one entry of the alias data base. */ +struct aliasent +{ + char *alias_name; + size_t alias_members_len; + char **alias_members; + int alias_local; +}; + + +/* Open alias data base files. */ +extern void setaliasent __P ((void)); + +/* Close alias data base files. */ +extern void endaliasent __P ((void)); + +/* Get the next entry from the alias data base. */ +extern struct aliasent *getaliasent __P ((void)); + +/* Get alias entry corresponding to NAME. */ +extern struct aliasent *getaliasbyname __P ((__const char *__name)); + +#ifdef __USE_REENTRANT +/* Reentrant versions of some of the functions above. */ +extern int getaliasent_r __P ((struct aliasent *__result_buf, char *__buffer, + size_t __buflen, struct aliasent **__result)); + +extern int getaliasbyname_r __P ((__const char *__name, + struct aliasent *__result_buf, + char *__buffer, size_t __buflen, + struct aliasent **__result)); +#endif /* reentrant */ + + +#endif /* aliases.h */ diff --git a/inet/getaliasent.c b/inet/getaliasent.c new file mode 100644 index 0000000..dfdec59 --- /dev/null +++ b/inet/getaliasent.c @@ -0,0 +1,26 @@ +/* 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include + + +#define LOOKUP_TYPE struct aliasent +#define GETFUNC_NAME getaliasent +#define BUFLEN 1024 + +#include "../nss/getXXent.c" diff --git a/inet/getaliasent_r.c b/inet/getaliasent_r.c new file mode 100644 index 0000000..d03ba57 --- /dev/null +++ b/inet/getaliasent_r.c @@ -0,0 +1,29 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. + + 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 + + +#define LOOKUP_TYPE struct aliasent +#define SETFUNC_NAME setaliasent +#define GETFUNC_NAME getaliasent +#define ENDFUNC_NAME endaliasent +#define DATABASE_NAME aliases + +#include "../nss/getXXent_r.c" diff --git a/inet/getaliasname.c b/inet/getaliasname.c new file mode 100644 index 0000000..416b434 --- /dev/null +++ b/inet/getaliasname.c @@ -0,0 +1,30 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. + + 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 + + +#define LOOKUP_TYPE struct aliasent +#define FUNCTION_NAME getaliasbyname +#define DATABASE_NAME aliases +#define ADD_PARAMS const char *name +#define ADD_VARIABLES name +#define BUFLEN 1024 + +#include "../nss/getXXbyYY.c" diff --git a/inet/getaliasname_r.c b/inet/getaliasname_r.c new file mode 100644 index 0000000..a2d9474 --- /dev/null +++ b/inet/getaliasname_r.c @@ -0,0 +1,29 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. + + 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 + + +#define LOOKUP_TYPE struct aliasent +#define FUNCTION_NAME getaliasbyname +#define DATABASE_NAME aliases +#define ADD_PARAMS const char *name +#define ADD_VARIABLES name + +#include "../nss/getXXbyYY_r.c" diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index 1848ad7..5600716 100644 --- a/inet/getnetgrent_r.c +++ b/inet/getnetgrent_r.c @@ -190,7 +190,7 @@ __internal_getnetgrent (char **hostp, char **userp, char **domainp, struct __netgrent *datap, char *buffer, size_t buflen) { - enum nss_status (*fct) (struct __netgrent *, char *, int); + enum nss_status (*fct) (struct __netgrent *, char *, size_t); int no_more; /* Initialize status to return if no more functions are found. */ @@ -293,7 +293,7 @@ innetgr (const char *netgroup, const char *host, const char *user, { int (*setfct) (const char *, struct __netgrent *); void (*endfct) (struct __netgrent *); - int (*getfct) (struct __netgrent *, char *, int); + int (*getfct) (struct __netgrent *, char *, size_t); struct name_list *known; struct name_list *needed; int result = 0; -- cgit v1.1