Dial-Up Utils v2.27:

  o Was *still* doing more than needed with shared libs.  Man, talk about making
    a simple thing complicated...


Dial-Up Utils v2.26:

  o I was doing *way* too much to get shared libraries working... it's
    actually even easier than I thought.  I was misled by a few (ancient
    a.out-oriented) man pages.  Oh well.


Dial-Up Utils v2.25:

  o Overlapping time classes are properly handled now.

  o A few other fixes.


Dial-Up Utils v2.24:

  o More fields can be modified with 'user_time'.

  o Data tranfer limits can be enforced (with PPP users).  To put this in,
    I had to change the format of the dial-up_users file.


Dial-Up Utils v2.23:

  o Aieee.  'user_login' was causing severe problems.


Dial-Up Utils v2.22:

  o Replaced 'BootOne' with 'MaxKick'.  This is just an extension of the
    original 'BootOne' idea.  For example, 'MaxKick 1' has the same effect
    'BootOne' had.  See the config file for details.


Dial-Up Utils v2.21:

  o Just for the heck of it, I made common.c a shared library.  This little
    exercise cut the binary distributions down in size by about 20% and it was
    also kind of fun as I had not done anything with shared libs before.


Dial-Up Utils v2.20:

  o A couple of very minor changes.  In case you're wondering, I do frequent
    releases because archive maintenance on sunsite.unc.edu happens
    infrequently, and if they decide to burn some CDs, I want the absolute
    most recent version of the package to be on those CDs.


Dial-Up Utils v2.19:

  o Dammit.  Guest users weren't getting kicked off.


Dial-Up Utils v2.18:

  o D'oh!  Gotta use O_NOCTTY flag when opening terminal devices in
    'user_updated'.


Dial-Up Utils v2.17:

  o A few minor adjustments.  Also found one *more* thing that could
    potentially cause user_updated to crash.  In theory, there are a finite
    number of bugs, and each bug I kill brings me 1 step closer to bug-free
    nirvana.  ;-)


Dial-Up Utils v2.16:

  o Fixed a bug that could have caused user_updated to crash under some
    circumstances.

  o Serial devices no longer need to be in a continuous block (i.e. same
    major #, sequential minor #'s).

  o Minor change to file locking.


Dial-Up Utils v2.15:

  o Fixed up the README a bit.

  o When all lines are busy, priority 0 users are now regarded as having
    sLeft = -(sLimit - sLeft).  This is more fair.


Dial-Up Utils v2.14:

  o Fixed a nasty bug that would cause 'user_updated' to crash sometimes.

  o 'user_updated' can optionally log its activities.  Currently, it only
    writes to syslog when it kicks users off the system.


Dial-Up Utils v2.13:

  o Fixed up 'user_del' a bit... it uses 'gawk' now so it can do a proper
    job of removing the user from the group file.  Would be nice if Red Hat
    put in a command-line util to delete user accounts...  oh well.


Dial-Up Utils v2.12:

  o Fixed really stupid bug in user_time.

  o 'user_updated' no longer deducts time for users who are logged in, but not
    using a dial-up line.

  o Fixed problems that arose as a result of new locking method.


Dial-Up Utils v2.10:

  o Changed the user_add, user_del scripts a little.

  o Better file locking -- it should work over NFS now.  Check out fLock()
    in common.c if you're interested.


Dial-Up Utils v2.09:

  o Made the max # of chars in a login name compile-time configurable.  The
    default is 8.  If you want more, redefine MAX_LOGINCHARS in common.h to
    whatever you want.


Dial-Up Utils v2.08:

  o A few minor fixes.


Dial-Up Utils v2.07:

  o Smart-Boot, Session-Smart-Boot, Idle-Boot, and Idle-Smart-Boot, and
    TimeClassSmartBoot can now be specified on a per-user basis.  The
    corresponding options in the config file are no longer globally applied,
    but are simply defaults used for creation of new accounts with
    'user_addrec'.


Dial-Up Utils v2.06:

  o A few minor corrections in the README (thanks to people who mailed me).

  o One user suggested it might be handy to totally disable time and session
    limits.  Easily done now!  Just set "tLeft" = -1 to give a user no
    time limit, and "sLeft" = -1 to give a user no session limit.

  o 'user_login' suffered from mild brain damage.  A transplant was not needed,
    just a little therapy.


Dial-Up Utils v2.05:

  o 'user_updated' is cleaner and simpler, and uses approx. 1/2 as much
    CPU as it did before (not that it was a CPU-hog...)

  o 'user_login' needed a few changes.

  o Minor cosmetic stuff.


Dial-Up Utils v2.04:

  o Changed Smart-Boot behaviour.  See comments in the default config file
    for details.


Dial-Up Utils v2.03:

  o Fixed a really stupid bug that was the result of a typo.


Dial-Up Utils v2.02:

  o Ported to BSD, thanks to John-Mark Gurney <gurney_j@resnet.uoregon.edu>

  o Changed 'user_time' a bit.

  o Other misc. stuff too unimportant to mention.


Dial-Up Utils v2.01:

  o Worked on the Makefile.


Dial-Up Utils v2.00:

  o The package has come a long way since 1.0, and I thought it was
    time to bump up the major version #.  It's unlikely the package
    will ever see v3.0, but ya never know... :)

  o New program 'user_expire' takes care of expired accounts,
    subscriptions, and bans.  'user_renew' no longer does this -- it
    only renews time.

  o 'user_bytes' is no longer using the 'bigfloat' package.

  o A few more minor fixes.


Dial-Up Utils v1.24:

  o Added 'IdleSmartBoot' option.

  o Added 'SessionSmartBoot' option.

  o Cleaned up 'user_updated', changed its behavior a little.
    Priority 0 users are now booted first always.

  o Changed 'user_login' to account for new behavior of 'user_updated'.

  o Other minor fixes/cleanups.


Dial-Up Utils v1.23:

  o Miscellaneous cleanups.

  o TimeClasses fixed up slightly.

  o 'user_time' extended a little more.  See the README.


Dial-Up Utils v1.22:

  o 'user_time' extended a bit.  See the README.


Dial-Up Utils v1.21:

  o 'user_time' now allows 'time left' > 'time limit'.

  o Added a powerful new feature that allows even better
    access control.  See 'TimeClass' in the config file
    for more info.


Dial-Up Utils 1.20:

  o 'user_verify' *still* broken.  Took a lesson from
    callback.c in mgetty-0.99.  It's still not perfect, but
    it should work better now.

  o 'user_login' now uses geteuid(3) to determine the uid.
    Also, root can give a login name on the command line.


Dial-Up Utils 1.19:

  o 'user_login' disallows multiple logins on dial-up lines,
    but permits multiple logins on non dial-up lines.

  o 'user_login' determines uid from utmp, not using getuid(2).

  o 'user_time' can now be used to change a user's <time_left>
    field independent of other fields.

  o 'user_dump' dumps more information now.

  o 'user_updated' regards a process as being owned by a uid
    iff (process.uid == uid) || (process.euid == uid)


Dial-Up Utils 1.18:

  o Warn-Boot was broken.  Grrr.


Dial-Up Utils 1.17:

  o Fixed problem with 'user_verify' blocking on open(2).


Dial-Up Utils 1.16:

  o 'user_bytes' couldn't deal with large numbers properly.  Now
    it uses the 'bigfloat' package, so it gives accurate results
    in all cases, and it's noticably slower.

  o A little work on 'user_updated'.


Dial-Up Utils 1.15:

  o Support for PPP:
	- Warn-Boot will not cause PPP users to be "warned".
	- Made Idle-Boot work with PPP.
	- Modest IP accounting capability.

  o New program 'user_dump' dumps *all* user records in an easily
    parsable format to facilitate report writing.

  o New program 'user_bytes' shows which PPP users are transferring
    the most data.  This is done in Perl 5, and is intended as a
    simple example of using user_dump and Perl to easily generate
    reports.

  o New program 'user_foreach' allows you to easily perform an
    operation on all users except specifically excluded users.
    See the README for details.

  o A little more work on 'user_login':
	- Better accept-or-reject logic.
	- When access is denied, 'user_login' will explain why.
	  You can modify the explanations.
	- It's installed suid root now...

  o 'user_updated' can optionally send mail to people when it boots
    them off explaining why they were booted.  You can modify the
    content of the mail messages.


Dial-Up Utils 1.14:

  o Bug fixes, cosmetic stuff.  One rather serious bug was causing
    corruption of the dial-up_users file.  Not good.


Dial-Up Utils 1.13:

  o Support for call-back verification (new programs user_verify,
    user_ban, user_unban)

  o Support for "Idle-Boot" (booting users off when they have
    excessive idle time).  I know there is already a package that
    does this, but it was very easy to add this functionality to
    'user_updated', and doing it there will save on memory (i.e.
    no need to run idled...)

  o Minor re-coding and fixes.


Dial-Up Utils 1.12:

  o Added support for 'Return-Delay' (prohibiting users from logging
    in for a certain period of time after being booted off).

  o A few clean-ups and bug fixes.


Dial-Up Utils 1.11:

  o Added support for user priorities.  Priority levels provide an
    additional level of dial-up access control.  See the README for
    details.

  o Gave 'user_login' a brain transplant.

  o Several bug fixes.


Dial-Up Utils 1.1:

  o Renamed from 'BBS-Util' because it is not specifically oriented
    towards BBS administration ; it can be used wherever there is a
    modem pool.

  o Support for session time limits.  For example, you can give a user
    90 minutes per day, but only allow 30 minutes per login session.

  o Support for multiple simultaneous guest logins (i.e. each guest
    will be booted at the proper time).

  o Support for "Smart-Boot[tm]" (only booting users when there are no
    free dial-up lines).

  o Support for warning users of imminent loss of carrier.

  o Support for longer accounting periods (i.e. months instead of days).

  o New programs 'clean_proc' and 'clean_tmp' help keep /proc and /tmp
    clean ;-)

  o New program 'user_login' simplifies login-time check to ensure a
    user is permitted to use the system.

  o Proper locking is done on the dialup-users file now.

  o I actually read some docs for 'make', so the Makefile doesn't suck
    anymore.

  o Changed identifiers to my new scheme -- i.e.
    user_file_open -> userFileOpen.  What?  You don't care?


BBS-Util 1.0: 

  o New programs 'user_addrec' and 'user_delrec' allow more flexible
    administration.  For example, shadow passwords can be supported
    through this approach.  See the README for details.

  o Assorted minor cleanups.

BBS-Util 0.9: first release
