diff options
Diffstat (limited to 'inet')
-rw-r--r-- | inet/Makefile | 12 | ||||
-rw-r--r-- | inet/aliases.h | 61 | ||||
-rw-r--r-- | inet/getaliasent.c | 26 | ||||
-rw-r--r-- | inet/getaliasent_r.c | 29 | ||||
-rw-r--r-- | inet/getaliasname.c | 30 | ||||
-rw-r--r-- | inet/getaliasname_r.c | 29 | ||||
-rw-r--r-- | inet/getnetgrent_r.c | 4 |
7 files changed, 184 insertions, 7 deletions
diff --git a/inet/Makefile b/inet/Makefile index c09db180f5..dd502110a8 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 0000000000..94895083b7 --- /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 <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 */ diff --git a/inet/getaliasent.c b/inet/getaliasent.c new file mode 100644 index 0000000000..dfdec5900c --- /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 <aliases.h> + + +#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 0000000000..d03ba57d99 --- /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 <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" diff --git a/inet/getaliasname.c b/inet/getaliasname.c new file mode 100644 index 0000000000..416b434d1a --- /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 <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" diff --git a/inet/getaliasname_r.c b/inet/getaliasname_r.c new file mode 100644 index 0000000000..a2d9474722 --- /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 <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" diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index 1848ad7f35..5600716d69 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; |