Commit Graph

19 Commits

Author SHA1 Message Date
brooks
cb3047054f Replace our version of the pwcache(3) API with NetBSD's implementation.
This adds two features:
 * uid_from_user() and gid_from_group() as the reverse of user_from_uid()
   and groups_from_gid().
 * pwcache_userdb() and pwcache_groupdb() which allow alternative lookup
   functions to be used.  For example lookups from passwd and group
   databases in a non-standard location.
2012-10-19 12:44:22 +00:00
imp
7d79e30fb2 Remove the Berkeley clause 3's.
Add a few $FreeBSD$
2010-02-16 19:39:50 +00:00
das
3dd54fea1a Namespace: endpwent, getpwent, and setpwent are XSI extensions. 2009-03-14 19:13:01 +00:00
nectar
2898737c63 Correct a typo in the definition of _PW_VERSION_MASK. This macro is
currently unused other than as documentation.

Reported by:	 Stefan Farfeleder <stefan@fafoe.narf.at>
2005-01-26 17:26:54 +00:00
nectar
8e1cb92b6b Revert the definitions of _PW_KEY* to their previous values. There is
at least one consumer outside of libc and pwd_mkdb.
Adjust the versioning in libc and pwd_mkdb accordingly.

named was the application affected, and that fact was first
Reported by:	Zherdev Anatoly <tolyar@mx.ru>

Sponsored by:	DARPA, Network Associates Laboratories
2003-04-18 14:11:17 +00:00
nectar
cd021cdb21 = Implement thread-safe versions of the getpwent(3) and getgrent(3)
family of functions using the new nsdispatch(3) core.  Remove
  arbitrary size limits when using the thread-safe versions.

= Re-implement the traditional getpwent(3)/getgrent(3) functions on
  top of the thread-safe versions.

= Update the on-disk format of the hashed version of the passwd(5)
  databases to allow for versioned entries.  The legacy version is
  `3'.  (Don't ask.)

= Add support for version `4' entries in the passwd(5) database.
  Entries in this format are identical to version 3 entries except
  that all integers are stored as 32-bit integers in network byte
  order (big endian).

= pwd_mkdb is updated to generate both version 3 and version 4
  entries.

Sponsored by:	DARPA, Network Associates Laboratories
2003-04-17 14:15:26 +00:00
mike
9e6f796b0d o Merge <machine/ansi.h> and <machine/types.h> into a new header
called <machine/_types.h>.
o <machine/ansi.h> will continue to live so it can define MD clock
  macros, which are only MD because of gratuitous differences between
  architectures.
o Change all headers to make use of this.  This mainly involves
  changing:
    #ifdef _BSD_FOO_T_
    typedef	_BSD_FOO_T_	foo_t;
    #undef _BSD_FOO_T_
    #endif
  to:
    #ifndef _FOO_T_DECLARED
    typedef	__foo_t	foo_t;
    #define	_FOO_T_DECLARED
    #endif

Concept by:	bde
Reviewed by:	jake, obrien
2002-08-21 16:20:02 +00:00
mike
27f173c485 o Remove include of <sys/types.h>, it adds too much pollution;
instead, add typedefs of only gid_t, time_t, and uid_t.
o Remove an unneeded conditional that hid macros that are in the
  implementation namespace and therefore don't need to be hidden when
  _POSIX_SOURCE is defined.
o Adjust some conditionals for compatibility with X/Open and POSIX.
o Note missing functions getpwnam_r() and getpwuid_r().
2002-06-09 19:39:18 +00:00
des
06b809501b (ab)use unused bits in the pw_fields member of struct passwd to record
the source of the data contained in the structure.

Sponsored by:	DARPA, NAI Labs
2002-04-14 22:24:55 +00:00
imp
300518c0a1 Breath deep and take __P out of the system include files.
# This appears to not break X11, but I'm having problems compiling the
# glide part of the server with or without this patch, so I can't tell
# for sure.
2002-03-23 17:24:55 +00:00
imp
bb8112f72f Make user_from_uid and group_from_gid return const char *, just like
NetBSD.  Update man page to reflect this.
2002-03-22 02:35:47 +00:00
imp
f58558abb7 Move user_from_uid to pwd.h
Move group_from_gid to grp.h
Remove from stdlib.h
Make the prototypes match the code
Fix rm and mv to include new files.

NetBSD has these defined in those files, and others too that I've not
done.

Approved by: terminal room kabal
Reviewed by: jhb, phk
2002-02-14 01:59:47 +00:00
des
9dabb14045 Use the correct type for uid and gid in struct passwd. Document it. 1999-01-18 02:14:20 +00:00
steve
82731c60fb XOpen says the void setpwent(void) is correct. Also call setpassent(0)
instead of duplicating code, albeit trivial (inspired by NetBSD).

PR:		5524
1998-02-01 06:16:08 +00:00
wpaul
24c5b47bb2 NIS cleanups and fixes, the next generation.
getnetgrent.c:

- Catch one bogon that snuck by: in _listmatch(), check for '\0'
  rather than '\n'; strings returned from yp_match() are terminated
  with a nul, not a newline.

getpwent.c:

- Rip out all of the +inclusion/-exclusion stuff from before and
  replace it with something a little less grotty. The main problem
  with the old mechanism was that it wasted many cycles processing
  NIS entries even after it already knew they were to be exlcuded
  (or not included, depending on your pointof view). The highlights
  of these changes include:

  o Uses an in-memory hash database table to keep track of all the
    -@netgroup, -user, and -@group exclusions.

  o Tries harder to duplicate the behavior normally obtained when using
    NIS inclusions/exclusions on a flat /etc/passwd file (meaning things
    come out in much the same order).

  o Uses seperate methods for handling getpwent() and getpwnam()/getpwuid()
    operations instead of trying to do everything with one general
    function, which didn't work as well as I thought it would.

  o Uses both getnetgrent() and innetgr() to try to save time where
    possible.

  o Use only one special token in the local password database
    (_PW_KEYYPBYNUM) instead of seperate tokens to mark + and -
    entries (and stop using the counter tokens too). If this new
    token doesn't exist, the code will make due with the standard
    _PW_KEYBYNUM token in order to support older databases that
    won't have the new token in them.

  All this is an attempt to make this stuff work better in environments
  with large NIS passwd databases.
1996-04-16 00:22:41 +00:00
wpaul
998695b2ad Add a couple of extra #defines for special keys to be embedded in the
password databases:

#define _PW_KEYPLUSBYNUM        '5'     /* special +@netgroup entries */
#define _PW_KEYMINUSBYNUM       '6'     /* special -@netgroup entries */
#define _PW_KEYPLUSCNT          '7'     /* number of +@netgroup entries */
#define _PW_KEYMINUSCNT         '8'     /* number of -@netgroup entries */

This is to help getpwent.c in libc build the +@netgroup/-@netgroup
caches.
1995-03-23 00:08:00 +00:00
wollman
b511765a26 Add a new field to the passwd structure, indicating which of the fields have
something in them, and which ones were left blank.  This will be used
for YP support in a few minutes, and for user login classes if anyone cares
to implement them.
1994-09-20 01:12:04 +00:00
gpalmer
893300c93d Add defines to allow pwd_mkdb to build databases in a specified
directory - removing the need to hardcode /etc into pwd_mkdb
1994-09-07 22:58:26 +00:00
rgrimes
a6ce65d368 BSD 4.4 Lite Include Sources 1994-05-24 09:57:34 +00:00