diff options
| author | Ulrich Drepper <drepper@redhat.com> | 1996-08-11 01:08:23 +0000 |
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 1996-08-11 01:08:23 +0000 |
| commit | 267ca16a67be70e0361c212e805d43884aee4506 (patch) | |
| tree | 5866c33fdf3e7366ae9d89ed71e0683fbbf8517c | |
| parent | f2b5d40e87c64a1bd855e9408bd81ab508eade87 (diff) | |
| download | glibc-267ca16a67be70e0361c212e805d43884aee4506.tar.xz glibc-267ca16a67be70e0361c212e805d43884aee4506.zip | |
Update to 960810.cvs/libc-ud-960810cvs/libc-960811
Sat Aug 10 13:17:27 1996 David Mosberger-Tang <davidm@azstarnet.com>
* shadow.h: New file.
* sysdeps/unix/sysv/linux/netinet/in.h: Move
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
* socket/sys/socket.h [__cplusplus]: Use old-style __SOCKADDR_ARG.
g++ 2.7.2 (and earlier) has no transparent unions support.
Fri Aug 9 18:50:06 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/ioperm.c (_bus_base_sparse): New
function to determine the base address of sparse bus memory.
(APECS_*): Rename to CIA_*.
(APECS_SPARSE_MEM, CIA_SPARSE_MEM): New macros.
(platform): Add sparse_bus_memory_base member and initialize.
(sparse_bus_memory_base): New variable.
Tue Aug 6 10:23:18 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/posix/ttyname_r.c (ttyname_r),
sysdeps/posix/ttyname.c (ttyname): Return -1/NULL if
!__isatty(fd) (POSIX.1 says so.)
* sysdeps/unix/getlogin.c (getlogin): Fix to check fd 0 only.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/getlogin.c (getlogin): Add static variable NAME,
change utmp_data from static to auto.
Sun Aug 11 02:56:08 1996 Ulrich Drepper <drepper@cygnus.com>
* posix/unistd.h [__USE_MISC]: Add prototype for `nice'.
Reported by David Mosberger-Tang.
33 files changed, 1062 insertions, 30 deletions
@@ -1,3 +1,44 @@ +Sat Aug 10 13:17:27 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * shadow.h: New file. + + * sysdeps/unix/sysv/linux/netinet/in.h: Move + __BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as + well. + + * socket/sys/socket.h [__cplusplus]: Use old-style __SOCKADDR_ARG. + g++ 2.7.2 (and earlier) has no transparent unions support. + +Fri Aug 9 18:50:06 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * sysdeps/unix/sysv/linux/alpha/ioperm.c (_bus_base_sparse): New + function to determine the base address of sparse bus memory. + (APECS_*): Rename to CIA_*. + (APECS_SPARSE_MEM, CIA_SPARSE_MEM): New macros. + (platform): Add sparse_bus_memory_base member and initialize. + (sparse_bus_memory_base): New variable. + +Tue Aug 6 10:23:18 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * sysdeps/posix/ttyname_r.c (ttyname_r), + sysdeps/posix/ttyname.c (ttyname): Return -1/NULL if + !__isatty(fd) (POSIX.1 says so.) + + * sysdeps/unix/getlogin.c (getlogin): Fix to check fd 0 only. + This is not a gross hack, after all---for compatibility, + getlogin() really should check fd 0 only and not try to base its + operation on the controlling tty. + +Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * sysdeps/unix/getlogin.c (getlogin): Add static variable NAME, + change utmp_data from static to auto. + +Sun Aug 11 02:56:08 1996 Ulrich Drepper <drepper@cygnus.com> + + * posix/unistd.h [__USE_MISC]: Add prototype for `nice'. + Reported by David Mosberger-Tang. + Sat Aug 10 02:05:28 1996 Richard Henderson <richard@twiddle.tamu.edu> * sysdeps/libm-ieee754/s_isnan.c [NO_LONG_DOUBLE]: Add strong diff --git a/gmon/sys/gmon.h b/gmon/sys/gmon.h index 8cbd6bdeda..d963797cd2 100644 --- a/gmon/sys/gmon.h +++ b/gmon/sys/gmon.h @@ -33,10 +33,12 @@ * @(#)gmon.h 8.2 (Berkeley) 1/4/94 */ -#ifndef _SYS_GMON_H_ -#define _SYS_GMON_H_ +#ifndef _SYS_GMON_H_ -#include <sys/cdefs.h> +#define _SYS_GMON_H_ 1 +#include <features.h> + +#include <sys/types.h> /* * See gmon_out.h for gmon.out format. diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c new file mode 100644 index 0000000000..f8b8d97d25 --- /dev/null +++ b/grp/fgetgrent_r.c @@ -0,0 +1,63 @@ +/* Copyright (C) 1991, 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 <ctype.h> +#include <grp.h> +#include <stdio.h> + +/* Define a line parsing function using the common code + used in the nss_files module. */ + +#define STRUCTURE group +#define ENTNAME grent +struct grent_data {}; + +#define TRAILING_LIST_MEMBER gr_mem +#define TRAILING_LIST_SEPARATOR_P(c) ((c) == ',') +#include "../nss/nss_files/files-parse.c" +LINE_PARSER +(, + STRING_FIELD (result->gr_name, ISCOLON, 0); + STRING_FIELD (result->gr_passwd, ISCOLON, 0); + INT_FIELD (result->gr_gid, ISCOLON, 0, 10,); + ) + + +/* Read one entry from the given stream. */ +struct group * +__fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen) +{ + char *p; + + do + { + p = fgets (buffer, buflen, stream); + if (p == NULL) + return NULL; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + ! parse_line (p, result, (void *) buffer, buflen)); + + return result; +} +weak_alias (__fgetgrent_r, fgetgrent_r) @@ -37,6 +37,7 @@ #define _FTS_H_ #include <sys/cdefs.h> +#include <sys/types.h> typedef struct { struct _ftsent *fts_cur; /* current node */ diff --git a/nss/nss_files/files-spwd.c b/nss/nss_files/files-spwd.c new file mode 100644 index 0000000000..df0106bdd6 --- /dev/null +++ b/nss/nss_files/files-spwd.c @@ -0,0 +1,37 @@ +/* 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 <shadow.h> + +#define STRUCTURE spwd +#define ENTNAME spent +#define DATABASE "shadow" +struct spent_data {}; + +/* Our parser function is already defined in sgetspent_r.c, so use that + to parse lines from the database file. */ +#define EXTERN_PARSER +#include "files-parse.c" +#include GENERIC + +DB_LOOKUP (spnam, 1 + strlen (name), (".%s", name), + { + if (! strcmp (name, result->sp_namp)) + break; + }, const char *name) diff --git a/nss/spwd-lookup.c b/nss/spwd-lookup.c new file mode 100644 index 0000000000..8832805f44 --- /dev/null +++ b/nss/spwd-lookup.c @@ -0,0 +1,22 @@ +/* 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. */ + +#define DATABASE_NAME shadow + +#include "XXX-lookup.c" diff --git a/pwd/fgetpwent_r.c b/pwd/fgetpwent_r.c new file mode 100644 index 0000000000..9b58e61009 --- /dev/null +++ b/pwd/fgetpwent_r.c @@ -0,0 +1,65 @@ +/* Copyright (C) 1991, 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 <ctype.h> +#include <stdio.h> +#include <pwd.h> + +/* Define a line parsing function using the common code + used in the nss_files module. */ + +#define STRUCTURE passwd +#define ENTNAME pwent +struct pwent_data {}; + +#include "../nss/nss_files/files-parse.c" +LINE_PARSER +(, + STRING_FIELD (result->pw_name, ISCOLON, 0); + STRING_FIELD (result->pw_passwd, ISCOLON, 0); + INT_FIELD (result->pw_uid, ISCOLON, 0, 10,); + INT_FIELD (result->pw_gid, ISCOLON, 0, 10,); + STRING_FIELD (result->pw_gecos, ISCOLON, 0); + STRING_FIELD (result->pw_dir, ISCOLON, 0); + result->pw_shell = line; + ) + + +/* Read one entry from the given stream. */ +struct passwd * +__fgetpwent_r (FILE *stream, struct passwd *result, char *buffer, int buflen) +{ + char *p; + + do + { + p = fgets (buffer, buflen, stream); + if (p == NULL) + return NULL; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + ! parse_line (p, result, (void *) buffer, buflen)); + + return result; +} +weak_alias (__fgetpwent_r, fgetpwent_r) diff --git a/shadow/Makefile b/shadow/Makefile new file mode 100644 index 0000000000..943881f1f1 --- /dev/null +++ b/shadow/Makefile @@ -0,0 +1,29 @@ +# 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. + +# +# Makefile for shadow. +# +subdir := shadow + +headers = shadow.h +routines = getspent getspnam sgetspent fgetspent putspent \ + getspent_r getspnam_r sgetspent_r fgetspent_r + + +include ../Rules diff --git a/shadow/fgetspent.c b/shadow/fgetspent.c new file mode 100644 index 0000000000..d6c4e4fc05 --- /dev/null +++ b/shadow/fgetspent.c @@ -0,0 +1,31 @@ +/* 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 <shadow.h> +#include <stdio.h> + + +/* Read one shadow entry from the given stream. */ +struct spwd * +fgetspent (FILE *stream) +{ + static char buffer[BUFSIZ]; + static struct spwd result; + + return __fgetspent_r (stream, &result, buffer, sizeof buffer); +} diff --git a/shadow/fgetspent_r.c b/shadow/fgetspent_r.c new file mode 100644 index 0000000000..6521517a6f --- /dev/null +++ b/shadow/fgetspent_r.c @@ -0,0 +1,56 @@ +/* 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 <ctype.h> +#include <shadow.h> +#include <stdio.h> + +/* Define a line parsing function using the common code + used in the nss_files module. */ + +#define STRUCTURE spwd +#define ENTNAME spent +#define EXTERN_PARSER 1 +struct spent_data {}; + +#include "../nss/nss_files/files-parse.c" + + +/* Read one shadow entry from the given stream. */ +struct spwd * +__fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen) +{ + char *p; + + do + { + p = fgets (buffer, buflen, stream); + if (p == NULL) + return NULL; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + ! parse_line (buffer, (void *) result, NULL, 0)); + + return result; +} +weak_alias (__fgetspent_r, fgetspent_r) diff --git a/shadow/getspent.c b/shadow/getspent.c new file mode 100644 index 0000000000..4266959bc1 --- /dev/null +++ b/shadow/getspent.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 |
