Fixed a few bugs found by Coverity.
Portability fixes for SunOS, recent NetBSD, OpenBSD and others.
Create bzip2 archive.
New homepage at http://userinfo.sourceforge.net/.
utmp[x] portability fixes for FreeBSD 9.0. Thanks to Eygene Ryabinkin
Safer strncat(). Thanks to Eygene Ryabinkin for reporting.
Fixed including dead logins in utmpx login.so output.
No longer print the error string as the login.so hostname output even if
there is no hostname. Rather, print the None string.
Added public module function safe_strncat().
userinfo 2.2 released March 17, 2007
The compile farm at sourceforge.net is no longer available so I don't have
access to OS's other than FreeBSD (4.1) and Linux (2.6) for build testing.
If you have a machine other than the above and would like to test
compilation on, please let me know of build failures so we can fix them.
Updated my email address.
Changed the follow symbolic links option -l to -L.
The users idle time (login.so) is shown in seconds rather than minutes.
userinfo 2.1 released July 30, 2005
This release includes some major fixes and code cleanups. Module writers
should have another look at doc/README.modules as all of the function
names have changed (ui_module_exec() not passwd_exec()). Details follow:
The command line options -x and -X behave like -O in that they take a
module name to load. No need to specify both.
Verbosity (-v) is reset for each module unless specified twice.
The strings UNKNOWN, NONE, ON and OFF are more hardcoded and are not
configurable in config.h. The ui_module_exec() function has changed to
drop these strings and module writers should look at the 'Output Key' from
'ui -h' as a guideline for static strings. It's kinda pointless but there
are less arguments to this function to worry about.
A modules help and dup warning is only shown once.
Fixed a memory leak in the login.so module.
Fixed module chaining of more than two modules.
Bugfix for modules which take no options.
Bugfix for the -d option when used with other modules.
userinfo 2.0 released December 05, 2004
It's been awhile since the last release, but hopefully worth the wait. The
program has been split up into modules which will need to be loaded either
from the command-line or from a configuration file. See doc/uirc for an
example configuration file and doc/README.modules for how to write your
own modules. Here's some details about the changes:
Added option -m to specify a deliminator for multi-value fields. The old
hardcoded character, and new default, was/is a comma.
Added option -O, -d and -c to load modules. Read the manual page or look
at doc/uirc for configuration file syntax.
Added option -d to load the default modules (passwd.so, mail.so, and
login.so). By default, no modules are loaded. This option may be used
anywhere in the module list.
Added option -x to chain the output of a loaded module to the input of the
next loaded module. This will only work if the next loaded module is
Added option -X to prevent the chained module from outputting it's info.
This will just pass the strings which would be outputted to the next
module (like -x).
Changed the main executable options a bit:
Changed option -F to -l (symbolic links)
Changed option -j to -t (time format)
Changed option -d to -F (field separator)
The default time format has changed to "%s" (seconds since epoch). The old
format contained a ":" which is the default field separator. Use -t to
change it to whatever you want. If your running Solaris please read
Changed the options for the modules a bit. To see the options for the
modules, load the module with -O, or -c if using a configuration
file, or both, when using the -h help switch.
The login module now supports multiple logins of the same username. For
example, if a user is logged in more than once and the -y module option is
specified the output might be: tty2,tty3.
Added an example module and shell script to contrib/ in the archive.
When a user has logged in via console and the hostname option in the login
module is requested, either from the lastlog or from utmp, display the
"none" string rather than the "unknown" string.
Port to NetBSD. May compile on OpenBSD too, but it hasn't been tested.
Removed the Darwin port. It's just not worth the hassle.
Automake has been updated. This means DESTDIR support is included in the
Fixed ouput of empty password fields from getpwnam().
Don't try an convert passwd.so options -c and -e to a time stamp, just
dump the passwd structure strings. The exception is if the user is not
root, then the unknown string is used. Different OS's use different
methods when displaying these values. See getspnam(3) or getpwent(3).
We now use getutxent() on systems that support and utilize utmpx. Login
process id's are gotten from this utmpx structure rather than KVM or the
/proc filesystem. Much more efficient and less error-prone.
When requesting the mail folder size and the size is zero, display zero
and not the "none" string.