Commit Graph

34 Commits

Author SHA1 Message Date
lukem 45a7a69275 Overhaul the use of nsdispatch(3) by public APIs so that the back-end
methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for getpwent(3).
Per my proposal on tech-userlevel.

Implement getpwgid_r() and getpwnam_r() APIs per the POSIX 1003.1, 2004 Ed.
These aren't fully reentrant or threadsafe yet, because the compat stuff
currently uses non-reentrant data sources (getnetgrent(3), getpwent(3)),
and there is probably some locking to be improved in the backends.
This will be fixed in the near future.
We also need to add _SC_GETPW_R_SIZE_MAX to sysconf(3).

Fix the compat `+' prototype override so getpwnam(3) and getpwuid(3) DTRT.

Improve the description of pw_class and pw_gecos.
2004-10-05 04:45:54 +00:00
jmc b2f782612f Completely rework how tools/compat is done. Purge all uses/references to
_NETBSD_SOURCE as this makes cross building from older/newer versions of
NetBSD harder, not easier (and also makes the resulting tools 'different')

Wrap all required code with the inclusion of nbtool_config.h, attempt to
only use POSIX code in all places (or when reasonable test w. configure and
provide definitions: ala u_int, etc).

Reviewed by lukem. Tested on FreeBSD 4.9, Redhat Linux ES3, NetBSD 1.6.2 x86
NetBSD current (x86 and amd64) and Solaris 9.

Fixes PR's: PR#17762 PR#25944
2004-06-20 22:20:14 +00:00
agc 9f1aac5bb3 Move Jason Downs's code from a 4-clause to a 3-clause licence by
removing the advertising clause.  Diffs provided in PR 22410 by Joel
Baker, confirmed to the board by Jason Downs.

With additional thanks to Jason Thorpe.
2003-10-13 15:36:33 +00:00
jdolecek bb21f0beb4 remove pw_dup() 2003-09-18 09:24:35 +00:00
itojun 99dfdf20e2 prototype for pw_dup(3) 2003-09-09 22:05:38 +00:00
agc 039cc95684 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22270, verified by myself.
2003-08-07 09:44:09 +00:00
bjh21 d2fb15abf0 bcrypt_gensalt() isn't defined in any X/Open standard I've got convenient
access to, so move it into the _NETBSD_SOURCE section.
2003-05-05 14:49:31 +00:00
bjh21 4be7a2dcf3 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
  can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
  various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
  !defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them.  In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
2003-04-28 23:16:11 +00:00
itojun c89c003ed2 support bcrypt password. can be chosen by "blowfish" keyword in passwd.conf.
from openbsd
2002-05-24 04:02:47 +00:00
lukem 791fb512f3 public prototypes should use __P(); fix entries for pwcache_{user,group}db() 2002-01-27 07:00:43 +00:00
lukem 463cd54319 - Implement pwcache_userdb(3), which changes the routines that
user_from_uid(3) and uid_from_user(3) use to lookup user information.
- Implement pwcache_groupdb(3), which changes the routines that
  group_from_gid(3) and gid_from_group(3) use to lookup group information.
- Ensure that private functions in pwcache.c are declared static
- Use strlcpy(3) instead of strncpy(3)
2002-01-24 02:46:32 +00:00
lukem b2a1c14478 - add _PATH_USERMGMT_CONF. resolves [bin/14305]
- add _PATH_PASSWD_CONF to be consistent with almost all other _PATH_xxx_CONF
  defines, and change from using _PATH_PASSWDCONF to the former.  keep the
  latter for compatibility, although arguably it could be removed because
  it was never in a release and was only used in one file in the tree.
2001-10-23 00:25:20 +00:00
ad 0940cdc61d Clarify a comment. 2000-09-18 16:27:24 +00:00
ad 481a5b226e Define _PATH_PASSWDCONF and _PASSWORD_NONDES. 2000-07-06 11:05:06 +00:00
kleink c95251a41e NULL vs. NUL nit in comment. 1999-12-22 21:59:49 +00:00
mycroft f9927bf246 Add gid_from_group() and uid_from_user(). 1998-07-28 16:27:48 +00:00
mycroft 29916a94a6 Slight rearrangement. 1998-07-27 11:09:19 +00:00
mycroft 4f4968a946 Mark more functions returning internal buffers for const auditing. 1998-07-27 09:33:44 +00:00
mycroft 633b8f45a9 Make many of the new consts dependent on a new `__AUDIT__' flag, to avoid
breaking third party software.  *sigh*
1998-07-27 09:09:03 +00:00
mycroft a2b177683b const poisoning. 1998-07-26 18:29:09 +00:00
msaitoh c2219d6aa5 pid/gid is not int but pid_t/gid_t (u_int32_t (unsigned!)). 1998-06-22 13:29:43 +00:00
lukem 986a30c817 move pw_scan from util.h to pwd.h, add _PASSWORD_{OLDFMT,NOWARN} flags 1998-06-08 03:05:14 +00:00
kleink 6ea15afcfa Reorganize name space protection. 1998-05-06 19:17:37 +00:00
lukem 04a72f75d1 Define _PASSWORD_CHGNOW as -1. This is a `magic' pw_change value,
which login(1) detects and forces a password change during login.
Based on [bin/936] by Simon Gerraty <sjg@quick.com.au>
1997-08-16 13:47:21 +00:00
lukem e7fb77dafb Define _PASSWORD_WARNDAYS to 14. When a password or account expiry is due
at a time less than this, login(1) et al will warn the user.
1997-06-27 16:20:59 +00:00
jtc 2a909cc6a7 Added new header files for functions in libutil.
Added macro for master passwd lock file.
From Greg Hudson <ghudson@MIT.EDU>.
1996-05-15 21:36:43 +00:00
phil 6452a2f618 Improvements to YP support from Jason Downs. 1995-07-28 05:30:52 +00:00
cgd 8352779370 provide user_from_uid() proto if not _POSIX_SOURCE and not _XOPEN_SOURCE 1995-04-29 05:30:00 +00:00
cgd 4d2cbfce0a new RCS ID format. 1994-10-26 00:55:40 +00:00
cgd e88e40a477 XOPEN foo here, too 1994-05-17 00:12:02 +00:00
cgd e6b5ddd91e update all but ctype.h, dumprestore.h, time.h to 4.4-Lite versions.
USL copyright additions on those.  Kill varargs.h, because it can simply
be a link to the machine-dependent version.
1994-05-16 10:58:53 +00:00
jtc 92ba83edfc X/Open 1170 defines the return type of setpwent() to be void -- a trival
change since our setpwent() allways succeeded.
1993-10-25 22:21:36 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00