History log of /freebsd-current/lib/libutil/libutil.h
Revision Date Author Comments
# b3e76948 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 04eeb364 01-Jun-2023 Baptiste Daroussin <bapt@FreeBSD.org>

cpuset(3): Move cpuset's parselist function into libutil

In order to allow to add cpuset(2) functionality to more utilities than just
cpuset(1) move the parselist code into libutil

While here, make the code a little more "library" friendly, by returning a range
of various errors so that the consumer can check for them and report appropriate
error message to the users

(One of the planed usage is the jail(8) utility)

Reviewed by: jilles
Differential Revision: https://reviews.freebsd.org/D12873


# 287451fd 11-Mar-2022 Mateusz Guzik <mjg@FreeBSD.org>

pidfile: add pidfile_signal

Differential Revision: https://reviews.freebsd.org/D34681


# f2069331 26-Oct-2021 Konstantin Belousov <kib@FreeBSD.org>

libutil: add kinfo_getswapvmobject(3)

which is the wrapper around the vm.swap_objects sysctl, same as
kinfo_getvmobject(3) wraps vm.objects.

Submitted by: Yoshihiro Ota
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D29754


# 30d21d27 18-Nov-2020 Stefan Eßer <se@FreeBSD.org>

Add function getlocalbase() to libutil.

This function returns the path to the local software base directory, by
default "/usr/local" (or the value of _PATH_LOCALBASE in include/paths.h
when building the world).

The value returned can be overridden by 2 methods:

- the LOCALBASE environment variable (ignored by SUID programs)
- else a non-default user.localbase sysctl value

Reviewed by: hps (earlier version)
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D27236


# 8e103108 15-Nov-2020 Scott Long <scottl@FreeBSD.org>

Revert the whole getlocalbase() set of changes while a different design is
hashed out.


# bcf9ae27 14-Nov-2020 Scott Long <scottl@FreeBSD.org>

Fix a problem with r367686 related to the use of ssize_t. Not sure how this
escaped prior testing, but it should be better now.

Reported by: lots


# 98b76d22 14-Nov-2020 Scott Long <scottl@FreeBSD.org>

Add the library function getlocalbase and its manual page. This helps to
unify the retrieval of the various ways that the local software base directory,
typically "/usr/local", is expressed in the system.

Reviewed by: se
Differential Revision: https://reviews.freebsd.org/D27022


# 34e9190d 26-Jul-2018 Ian Lepore <ian@FreeBSD.org>

Make pw_scan(3) more compatible with getpwent(3) et. al. when processing
data from /etc/passwd rather than /etc/master.passwd.

The libc getpwent(3) and related functions automatically read master.passwd
when run by root, or passwd when run by a non-root user. When run by non-
root, getpwent() copes with the missing data by setting the corresponding
fields in the passwd struct to known values (zeroes for numbers, or a
pointer to an empty string for literals). When libutil's pw_scan(3) was
used to parse a line without the root-accessible data, it was leaving
garbage in the corresponding fields.

These changes rename the static pw_init() function used by getpwent() and
friends to __pw_initpwd(), and move it into pw_scan.c so that common init
code can be shared between libc and libutil. pw_scan(3) now calls
__pw_initpwd() before __pw_scan(), just like the getpwent() family does, so
that reading an arbitrary passwd file in either format and parsing it with
pw_scan(3) returns the same results as getpwent(3) would.

This also adds a new pw_initpwd(3) function to libutil, so that code which
creates passwd structs from scratch in some manner that doesn't involve
pw_scan() can initialize the struct to the values expected by lots of
existing code, which doesn't expect to encounter NULL pointers or garbage
values in some fields.


# 5e53a4f9 25-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

lib: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 73979478 04-Aug-2017 Mariusz Zaborski <oshogbo@FreeBSD.org>

Introduce the flopenat(3) function.

Reviewed by: des, emaste
Differential Revision: https://reviews.freebsd.org/D11690


# c24c3080 04-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

revert r283969,283970 not needed anymore after r283981


# 972cf03e 03-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add a pw_mkdb2(3) function which does the same thing as pw_mkdb(3) except
it takes a new argument allowing to specify the endianness of the database
to generate

Differential Revision: https://reviews.freebsd.org/D2730
Reviewed by: ian


# ff87ae35 27-May-2015 John Baldwin <jhb@FreeBSD.org>

Export a list of VM objects in the system via a sysctl. The list can be
examined via 'vmstat -o'. It can be used to determine which files are
using physical pages of memory and how much each is using.

Differential Revision: https://reviews.freebsd.org/D2277
Reviewed by: alc, kib
MFC after: 2 weeks
Sponsored by: Norse Corp, Inc. (forward porting to HEAD/10)


# 86e2f99d 07-Mar-2013 Diane Bruce <db@FreeBSD.org>

Cleanup gr_add() so it does not leak mem
This is part of ongoing work on sbin/pw

M libutil.h
M gr_util.c

Approved by: theraven


# 2bfeb4fe 27-Dec-2012 Baptiste Daroussin <bapt@FreeBSD.org>

- Clean up previous gr_add use malloc instead of calloc
- Fix tinderbox error

Submitted by: db


# be49c830 27-Dec-2012 Baptiste Daroussin <bapt@FreeBSD.org>

New gr_add function to provide a clean and safe method to append a new member
into an existing group.

Submitted by: db


# 0e4b06c8 26-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Consensus between bde and pjd seemed to be that if the function names
are lined up, then any * after a long type should appear after the
type instead of being in front of the function name on the following
line.


# 56db7574 26-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Make the comments consistent (capitalization, punctuation, and
format).

Requested by bde


# edd38b51 26-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Restore the parenthesis that are necessary around the constant values.

Requested by bde.


# 34775f89 16-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Fix more disorder in prototypes and constants.
Fix header comments for each section of constants.
Fix whitespace in #define lines.
Fix unnecessary parenthesis in constants.


# 47b3924b 12-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Move struct pidfh definition into pidfile.c, and leave a forward declaration
for pidfh in libutil.h in its place.
This allows us to hide the contents of the pidfh structure, and also
allowed removal of the "#ifdef _SYS_PARAM_H" guard from around the
pidfile_* function prototypes.

Suggested by pjd.


# 8afc5005 12-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

More prototype formatting fixes, struct member formatting fixes,
and namespace fix for property_find() prototype.

Provided by bde.


# 744c4157 11-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Fix prototype formatting (indentation, long lines, and continued lines).

Requested by bde.


# a8cada54 11-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Fix namespace issues with prototype parameter names.
Add missing prototype parameter names.

Requested by bde.


# 46719410 11-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Fix forward structure declaration and prototype disorder.

Requested by bde.


# 9de091f2 10-Jan-2012 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Constify arguments.


# f295618d 10-Jan-2012 Guy Helmer <ghelmer@FreeBSD.org>

Add pidfile_fileno() to obtain the file descriptor for an open
pidfile.


# a9e4a478 05-Jan-2012 Baptiste Daroussin <bapt@FreeBSD.org>

Add new pw_make_v7 to make a passwd line (in v7 format) out of a struct passwd
while here, fix missing parentheses of the return statement of pw_make.

Approved by: des (mentor)


# 1926f2f6 15-Dec-2011 Baptiste Daroussin <bapt@FreeBSD.org>

Modify pw_copy:
- if pw is NULL and oldpw is not NULL then the oldpw is deleted
- if pw->pw_name != oldpw->pw_name but pw->pw_uid == oldpw->pw_uid
then it renames the user

add new gr_* functions so now gr_util API is similar to pw_util API,
this allow to manipulate groups in a safe way.

Reviewed by: des
Approved by: des
MFC after: 1 month


# 0daf62d9 12-May-2011 Stanislav Sedov <stas@FreeBSD.org>

- Commit work from libprocstat project. These patches add support for runtime
file and processes information retrieval from the running kernel via sysctl
in the form of new library, libprocstat. The library also supports KVM backend
for analyzing memory crash dumps. Both procstat(1) and fstat(1) utilities have
been modified to take advantage of the library (as the bonus point the fstat(1)
utility no longer need superuser privileges to operate), and the procstat(1)
utility is now able to display information from memory dumps as well.

The newly introduced fuser(1) utility also uses this library and able to operate
via sysctl and kvm backends.

The library is by no means complete (e.g. KVM backend is missing vnode name
resolution routines, and there're no manpages for the library itself) so I
plan to improve it further. I'm commiting it so it will get wider exposure
and review.

We won't be able to MFC this work as it relies on changes in HEAD, which
was introduced some time ago, that break kernel ABI. OTOH we may be able
to merge the library with KVM backend if we really need it there.

Discussed with: rwatson


# b928a692 05-May-2011 David E. O'Brien <obrien@FreeBSD.org>

Don't duplicate define the stdint types.


# 7d14df1a 12-Apr-2011 Xin LI <delphij@FreeBSD.org>

Add support for IEE/IEC (and now also SI) power of two notions of
prefixes (Ki, Mi, Gi...) for humanize_number(3).

Note that applications has to pass HN_IEC_PREFIXES to use this
feature for backward compatibility reasons.

Reviewed by: arundel
MFC after: 2 weeks


# fdf6b12d 06-Mar-2011 Pawel Jakub Dawidek <pjd@FreeBSD.org>

expand_number() needs uint64_t, declare it here if not already declared.

MFC after: 3 days


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# bbb2703b 14-Aug-2010 Dag-Erling Smørgrav <des@FreeBSD.org>

Simplify expand_number() by combining the (unrolled) loop with the
switch. Since expand_number() does not accept negative numbers, switch
from int64_t to uint64_t; this makes it easier to check for overflow.

MFC after: 3 weeks


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 21470ecd 13-Jan-2010 Ed Schouten <ed@FreeBSD.org>

Remove login(3), logout(3) and logwtmp(3) from libutil.

These functions only apply to utmp(5). They cannot be kept intact when
moving towards utmpx. The login(3) function would break, because its
argument is an utmp structure. The logout(3) and logwtmp(3) functions
cannot be used, since they provide a functionality which partially
overlaps.

Increment SHLIB_MAJOR to 9 to indicate the removal.


# aee785ba 28-Dec-2009 Kirk McKusick <mckusick@FreeBSD.org>

Add and document the quota_convert function which converts between the
old 32-bit and the new 64-bit formats.


# 8b8ec2e2 02-Dec-2009 Ed Schouten <ed@FreeBSD.org>

Make <libutil.h> work when included by itself.

There are several reasons why it didn't work:

- It was missing <sys/cdefs.h> for __BEGIN_DECLS.
- It uses various primitive types that were not declared.


# e525d16a 16-Nov-2009 Kirk McKusick <mckusick@FreeBSD.org>

Add and document new quoat_on and quota_off functions.


# 6197731d 19-Oct-2009 Kirk McKusick <mckusick@FreeBSD.org>

Add quota_maxid which returns the maximum user (or group) identifier
in an associated quotafile. Needed by repquota.

Bug fix in quota_read.


# 5666aadb 26-Sep-2009 Dag-Erling Smørgrav <des@FreeBSD.org>

Further extend the quotafile API.


# 8bd6a3ab 14-Feb-2009 Kirk McKusick <mckusick@FreeBSD.org>

Update the quotafile library to manage both active quotas via the
quotactl(2) interface and inactive quotas by accessing the quota
files directly.

Update the edquota program to use this new interface as proof of
concept.


# a88984f2 13-Feb-2009 Kirk McKusick <mckusick@FreeBSD.org>

Make hasquota thread safe.


# 916e406e 12-Feb-2009 Kirk McKusick <mckusick@FreeBSD.org>

Move hasquota() function to libutil.


# 1b3515f3 30-Jan-2009 Dag-Erling Smørgrav <des@FreeBSD.org>

WIP


# 43151ee6 01-Dec-2008 Peter Wemm <peter@FreeBSD.org>

Merge user/peter/kinfo branch as of r185547 into head.

This changes struct kinfo_filedesc and kinfo_vmentry such that they are
same on both 32 and 64 bit platforms like i386/amd64 and won't require
sysctl wrapping.

Two new OIDs are assigned. The old ones are available under
COMPAT_FREEBSD7 - but it isn't that simple. The superceded interface
was never actually released on 7.x.

The other main change is to pack the data passed to userland via the
sysctl. kf_structsize and kve_structsize are reduced for the copyout.
If you have a process with 100,000+ sockets open, the unpacked records
require a 132MB+ copyout. With packing, it is "only" ~35MB. (Still
seriously unpleasant, but not quite as devastating). A similar problem
exists for the vmentry structure - have lots and lots of shared libraries
and small mmaps and its copyout gets expensive too.

My immediate problem is valgrind. It traditionally achieves this
functionality by parsing procfs output, in a packed format. Secondly, when
tracing 32 bit binaries on amd64 under valgrind, it uses a cross compiled
32 bit binary which ran directly into the differing data structures in 32
vs 64 bit mode. (valgrind uses this to track file descriptor operations
and this therefore affected every single 32 bit binary)

I've added two utility functions to libutil to unpack the structures into
a fixed record length and to make it a little more convenient to use.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# e1355b07 01-Jul-2008 John Baldwin <jhb@FreeBSD.org>

Merge hexdump(9) to userland as hexdump(3) in libutil. I'm tired of doing
this by hand in userland utilities.

MFC after: 1 month


# 0b5e8899 22-Apr-2008 Sean Farley <scf@FreeBSD.org>

Add four utility functions related to struct grp processing modeled in-part
after similar calls related to struct pwd in libutil/pw_util.c:
- gr_equal()
Perform a deep comparison of two struct grp's. It does a thorough, yet
unoptimized comparison of all the members regardless of order.

- gr_make()
Create a string (see group(5)) from a struct grp.

- gr_dup()
Duplicate a struct grp. Returns a value that is a single contiguous
block of memory.

- gr_scan()
Create a struct grp from a string (as produced by gr_make()).

MFC after: 3 weeks


# 26fc3730 17-Nov-2007 John Birrell <jb@FreeBSD.org>

Constify the first argument to expand_number() so that it can
be called with a const without the compiler grisling.


# bd35b57d 01-Sep-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Implement expand_number(3), which is the opposite of humanize_number(3), ie.
a number in human-readable form is converted to int64_t, for example:
123b -> 123
10k -> 10240
16G -> 17179869184

First version submitted by: Eric Anderson <anderson@freebsd.org>
Approved by: re (bmah)


# 8f908538 10-May-2007 Dag-Erling Smørgrav <des@FreeBSD.org>

Well gag me with a spoon... I'm so used to working at high WARNS levels
that I make stupid fundamental mistakes like this when I don't.


# 96670552 10-May-2007 Dag-Erling Smørgrav <des@FreeBSD.org>

I'm tired of seeing this done incorrectly and non-portably, so add a
flopen(3) function which reliably opens and locks a file.

MFC after: 3 weeks


# 501092bb 18-Feb-2006 Dag-Erling Smørgrav <des@FreeBSD.org>

Add utility functions for checking if a given kernel module is loaded,
and loading it.


# 412fa8f1 24-Aug-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add a family of functions for reliable pidfiles handling.

Idea from: jmg
Discussed on: arch@


# 23d1a178 24-May-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add humanize_number(3) to libutil for formating numbers into a human
readable form.

Obtained from: NetBSD


# a0a7e172 26-Feb-2004 Tim Kientzle <kientzle@FreeBSD.org>

Add the clean_environment call to libutil.h also.

MFC after: 2 weeks


# 547fa0d9 18-Oct-2003 Mark Murray <markm@FreeBSD.org>

ANSIfy, WARNSify, CONSTify. Bit of style(9)-ify.


# e2ef54de 07-May-2002 Dag-Erling Smørgrav <des@FreeBSD.org>

Add passwd manipulation code based on parts of vipw and chpass.

Sponsored by: DARPA, NAI Labs


# 1372519b 22-Mar-2002 David E. O'Brien <obrien@FreeBSD.org>

Remove multi-line __P() usage.


# 69160b1e 21-Mar-2002 David E. O'Brien <obrien@FreeBSD.org>

Remove __P() usage.


# 27e79ba2 22-Jul-2001 Assar Westerlund <assar@FreeBSD.org>

remove emalloc,ecalloc,erealloc,estrdup


# c9a4f950 22-Jul-2001 Assar Westerlund <assar@FreeBSD.org>

add ecalloc, emalloc, erealloc, estrdup - versions of the e-less
functions that exit instead of failing


# 4482ce0f 21-Mar-2001 Robert Watson <rwatson@FreeBSD.org>

o Slap some "_"'s in front of variable names relating to extattr functions,
so as not to pollute application namespace.

Submitted by: bde


# 270ad63e 18-Mar-2001 Robert Watson <rwatson@FreeBSD.org>

o Rename "namespace" argument to "attrnamespace" as namespace is a C++
reserved word, causing breakage when a C++ program included libutil.h
This change will be propagated elsewhere shortly.

Submitted by: jkh
Obtained from: TrustedBSD Project


# 1bc2362e 14-Mar-2001 Robert Watson <rwatson@FreeBSD.org>

o To support new EA interface with explicit namespaces, introduce two
utility functions which convert between string namespace names and
numeric constants used by the interface. Right now, two namespaces
are supported, EXTATTR_NAMESPACE_SYSTEM ("system") and
EXTATTR_NAMESPACE_USER ("user"). These functions are used by
various userland EA utilities, rather than hard coding the routines
all over the place.

Obtained from: TrustedBSD Project


# f9f81f78 08-Nov-2000 Murray Stokely <murray@FreeBSD.org>

Added PROPERTY_MAX_VALUE and PROPERTY_MAX_NAME defines to libutil.h so
that applications know how large of a buffer they must allocate before
calling property_find(). Also added a $FreeBSD$ tag while I'm here.

Approved by: jkh


# 8cfadb89 04-Sep-2000 Peter Wemm <peter@FreeBSD.org>

Constify the arg to logout(3). It is const-safe.
(cosmetic: drop some "register" qualifications too.)


# 9feac5c2 01-Sep-2000 Brian Somers <brian@FreeBSD.org>

Move setproctitle() from libutil to libc (after a repo-copy)
and bump __FreeBSD_version to 500012 to mark the occasion.

setproctitle() is prototyped in unistd.h as opposed to stdlib.h
where OpenBSD and NetBSD have it.

Reviewed by: peter


# 4dc2c0b8 26-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Use a more conventional copyright message.


# 0cac72f4 25-Jan-2000 Yoshinobu Inoue <shin@FreeBSD.org>

several tcp apps IPv6 update
-inetd
-rshd
-rlogind
-telnetd
-rsh
-rlogin

Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project


# 2705d66b 29-Dec-1999 Peter Wemm <peter@FreeBSD.org>

Connect fparseln(3) for mailwrapper(8)


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 595f220e 06-Apr-1999 Brian Somers <brian@FreeBSD.org>

Add realhostname() - a function to correctly lookup
a name by address and ensure that the name resolves
back to the original address.


# 8495e302 16-Dec-1998 Bruce Evans <bde@FreeBSD.org>

Declare setproctitle() as printf0-like.


# 50dfa596 09-Oct-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

o move path in libutil.h to paths.h
o make property_read() take a fd instead to avoid stdio.h mess
o update auth to new interface.


# 72671863 09-Oct-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Take the path spec back out.


# 146c3cf4 08-Oct-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

remove stdio.h include; I forgot Bruce's cardinal rule that header files
shouldn't include other ones (which, unfortunately, is also a hellish
rule since he broke interfaces like sysctl this way by requiring undocumented
header files to be included just in order to be able to use them now - SIGH!).


# b704025f 07-Oct-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a simple mechanism for reading property lists from files (which
I'll convert sysinstall to use shortly) and a simple call which uses
this mechanism to implement an /etc/auth.conf file. I'll let Mark Murray
handle the format and checkin of the sample auth.conf file.
Reviewed by: markm


# 15af1c9b 05-Jun-1998 Andrey A. Chernov <ache@FreeBSD.org>

Add missing uu_lock_txfr() prototype


# 89caae29 01-Jun-1998 Atsushi Murai <amurai@FreeBSD.org>

Trim a domain part for wtmp as same as showed by "netstat -r".
Here is a some example for avoiding a confusion.

It asssumes a logged host domain is "spec.co.jp". All
example is longer than UT_HOSTNAMELEN value.

1) turbo.tama.spec.co.jp: 192.19.0.2 -> trubo.tama
2) turbo.tama.foo.co.jp : 192.19.0.2 -> 192.19.0.2
3) specgw.spec.co.jp : 202.32.13.1 -> specgw

Submitted by: Atsushi Murai <amurai@spec.co.jp>


# 46cf264a 28-May-1998 Brian Somers <brian@FreeBSD.org>

Add uu_lock_txfr() to transfer ownership of a successful
uu_lock() to another process.


# 326df44e 04-Sep-1997 Paul Traina <pst@FreeBSD.org>

The parameters to logwtmp should be const char's


# ad1d4e56 31-Aug-1997 Brian Somers <brian@FreeBSD.org>

Remove login_progok()
Suggested by: guido


# fbbe016b 27-Aug-1997 Brian Somers <brian@FreeBSD.org>

Add full support for determining if a user
is restricted from running a given program.


# 84dc2299 10-Aug-1997 Andrey A. Chernov <ache@FreeBSD.org>

Implement canonical locking protocol
Suggested by: joerg


# d3e0a250 19-May-1997 Peter Wemm <peter@FreeBSD.org>

Now I really understand the reason for the style.9 rule about not having
visible type names in prototypes in user space headers. libutil.h
generates warnings with -Wall over the use of "const char *ttyname".
It's lucky it wasn't a #define conflict.
Is a single '_' prefix acceptable? or does it need to be two?


# 85b0d75d 12-May-1997 Brian Somers <brian@FreeBSD.org>

Make uu_* const correct.

Suggested by: joerg


# 56c04344 10-May-1997 David Nugent <davidn@FreeBSD.org>

Summary of login.conf support changes:

o Incorporated BSDI code and enhancements, better logging for error
checking (which has been shown to be a problem, and is therefore
justified, imho); also some minor things we were missing, including
better quad_t math, which checks for under/overflows.

o setusercontext() now allows user resource limit overrides, but
does this AFTER dropping root privs, to restrict the user to
droping hard limits and set soft limits within the kernel's
allowed user limits.

o umask() only set once, and only if requested.

o add _secure_path(), and use in login.conf to guard against
symlinks etc. and non-root owned or non-user owned files being
used. Derived from BSDI contributed code.

o revamped authentication code to BSDI's latest api, which
includes deleting authenticate() and adding auth_check()
and a few other functions. This is still marked as depecated
in BSDI, but is included for completeness. No other source
in the tree uses this anyway, so it is now bracketed with
#ifdef LOGIN_CAP_AUTH which is by default not defined. Only
auth_checknologin() and auth_cat() are actually used in
module login_auth.c.

o AUTH_NONE definition removed (collided with other includes
in the tree). [bde]

o BSDI's login_getclass() now accepts a char *classname
parameter rather than struct passwd *pwd. We now do likewise,
but added login_getpwclass() for (sort of) backwards
compatiblity, namely because we handle root as a special
case for the default class. This will require quite a few
changes elsewhere in the source tree.

o We no longer pretend to support rlim_t as a long type.

o Revised code formatting to be more bsd-ish style.


# 687d0cde 31-Mar-1997 Brian Somers <brian@FreeBSD.org>

Remove the syslog stuff, and allow various return values
in uu_lock(). Add uu_lockerr() for turning the results of
uu_lock into something printable. Remove bogus section in man page
about race conditions allowing both processes to get the lock.
Include libutil.h and use uu_lock() correctly where it should.

Suggested by: ache@freebsd.org


# 568b59b9 29-Mar-1997 Brian Somers <brian@FreeBSD.org>

Move uucplock into libutil and create a manual page.


# 7e546392 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 483f4c83 29-Dec-1996 Joerg Wunsch <joerg@FreeBSD.org>

Finally document the interfaces found in libutil. While being here,
also add the missing declaration of forkpty() to libutil.h.

Btw., the calling interface for login(3) is crude. Some better
abstraction is needed, perhaps similar to logwtmp(3).

2.2 candidate, but i'll wait for the spelling police first. :)


# 3b7e1cc8 01-Jan-1996 Peter Wemm <peter@FreeBSD.org>

Bump libutil revision after recent addition of setproctitle().

Install (optional) libutil.h with prototypes for the functions and
document this in the man page.

minor cleanups to the various routines, include the prototype file, declare
return codes etc.