# 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.
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
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
--- /dev/null
+/* 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 <features.h>
+
+#include <sys/types.h>
+
+
+/* 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 */
--- /dev/null
+/* 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 <aliases.h>
+
+
+#define LOOKUP_TYPE struct aliasent
+#define GETFUNC_NAME getaliasent
+#define BUFLEN 1024
+
+#include "../nss/getXXent.c"
--- /dev/null
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <aliases.h>
+
+
+#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"
--- /dev/null
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <aliases.h>
+
+
+#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"
--- /dev/null
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <aliases.h>
+
+
+#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"
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. */
{
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;
{
lr_error (lr, _("\
collation element `%.*s' appears more than once: ignore line"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
lr_ignore_rest (lr, 0);
result = -1;
break;