freebsd-dev/lib
Ed Schouten a627ac61ab Implement <utmpx.h>.
The utmpx interface is the standardized interface of the user accounting
database. The standard only defines a subset of the functions that were
present in System V-like systems.

I'd like to highlight some of the traits my implementation has:

- The standard allows the on-disk format to be different than the
  in-memory representation (struct utmpx). Most operating systems don't
  do this, but we do. This allows us to keep our ABI more stable, while
  giving us the opportunity to modify the on-disk format. It also allows
  us to use a common file format across different architectures (i.e.
  byte ordering).

- Our implementation of pututxline() also updates wtmp and lastlog (now
  called utx.log and utx.lastlogin). This means the databases are more
  likely to be in sync.

- Care must be taken that our implementation discard any fields that are
  not applicable. For example, our DEAD_PROCESS records do not hold a
  TTY name. Just a time stamp, a record identifier and a process
  identifier. It also guarantees that strings (ut_host, ut_line and
  ut_user) are null terminated. ut_id is obviously not null terminated,
  because it's not a string.

- The API and its behaviour should be conformant to POSIX, but there may
  be things that slightly deviate from the standard. This implementation
  uses separate file descriptors when writing to the log files. It also
  doesn't use getutxid() to search for a field to overwrite. It uses an
  allocation strategy similar to getutxid(), but prevents DEAD_PROCESS
  records from accumulating.

Make sure libulog doesn't overwrite the manpages shipped with our C
library. Also keep the symbol list in Symbol.map sorted.

I'll bump __FreeBSD_version later this evening. I first want to convert
everything to <utmpx.h> and get rid of <utmp.h>.
2010-01-13 17:29:55 +00:00
..
bind Update to BIND 9.6.1-P2. The vulnerability this is designed to fix is 2009-11-30 03:38:34 +00:00
csu Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libalias Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libarchive Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libauditd Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libautofs Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbegemot Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbluetooth Fix typo in bluetooth.3 2009-10-26 17:27:30 +00:00
libbsm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbsnmp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbz2 Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libc Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
libc_r Use, in uncovered part, the END() macro in order to improve debugging. 2009-05-25 14:37:10 +00:00
libcalendar Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcam Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcom_err
libcompat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcrypt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdevinfo Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdevstat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdisk Disable a check on a disk size because it's too strict. This change is 2009-09-21 04:04:02 +00:00
libdwarf Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libedit Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libelf Remove useless .TE groff macro. 2010-01-12 17:38:23 +00:00
libexpat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libfetch Fix a socket leak in ftp_request() after that a connection is established. 2009-11-25 14:57:07 +00:00
libftpio Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libgeom Add missing `void' keyword. 2009-12-31 01:37:26 +00:00
libgpib Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libgssapi Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libipsec Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libipx Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libjail Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libkiconv Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libkse Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libkvm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmagic Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmd Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmemstat Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libmilter Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmp Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libncp Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libnetgraph bring the NGM_IPFW_COOKIE back into ng_ipfw.h, libnetgraph expects 2009-12-28 12:29:13 +00:00
libngatm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libopie Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpam Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpcap Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpmc Bug fix: add a missing initializer. 2010-01-12 17:03:55 +00:00
libproc Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libradius Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
librpcsec_gss Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
librpcsvc Use ANSI function declarations in librpcsvc. 2009-02-26 20:32:11 +00:00
librt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsbuf Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsdp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsmb Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsmdb Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsmutil Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libstand Implement the fo_readdir method. This does not support long 2010-01-09 22:33:34 +00:00
libtacplus Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libtelnet Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libthr Merge r195129 from project/mips to head by hand: 2010-01-09 00:07:47 +00:00
libthread_db Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libufs Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libugidfw Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libulog Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
libusb Reset variable fields in case the transfer is opened again 2010-01-10 19:18:49 +00:00
libusbhid Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libutil Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libvgl Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libwrap Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
liby Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libypclnt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libz Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
msun Use the documented machine constraint for SSE registers. 2009-06-11 13:59:51 +00:00
ncurses Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
Makefile Convert pam_lastlog(8) to libulog. 2009-12-11 14:15:55 +00:00
Makefile.inc Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00