Commit Graph

19 Commits

Author SHA1 Message Date
lukem c54f283e46 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 getgrent(3).
Per my proposal on tech-userlevel.

Implement getgrgid_r() and getgrnam_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), getgrent(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_GETGR_R_SIZE_MAX to sysconf(3).
2004-10-04 04:11:33 +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 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
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
mycroft f9927bf246 Add gid_from_group() and uid_from_user(). 1998-07-28 16:27:48 +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
kleink 6ea15afcfa Reorganize name space protection. 1998-05-06 19:17:37 +00:00
jtc 0f222262ee POSIX.1 requires programs to include <sys/types.h> before including
<grp.h> or <utime.h> while XPG4.2 makes <sys/types.h> optional.  So
I've included <sys/types.h> to provide the XPG4.2 behavior.
1996-06-11 02:14:01 +00:00
cgd 62ee060840 provide group_from_gid() proto if not _POSIX_SOURCE and not _XOPEN_SOURCE 1995-04-29 05:30:40 +00:00
cgd 4d2cbfce0a new RCS ID format. 1994-10-26 00:55:40 +00:00
cgd 5a60a84b23 add back jtc's _XOPEN_SOURCE changes, return type of setgrent back to void 1994-05-16 23:43:17 +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 2928342e94 X/Open 1170 defines the return type of setgrent() to be void -- a trival
change since our setgrent() allways succeeded.
Removed prototype for obsolete function setgrfile(), added prototype for
setgroupent().
Added _XOPEN_SOURCE to conditionals in case someone wants to compile
something in an strict X/Open environment.
1993-10-25 23:30:53 +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