Changes to Idled.

V 1.12
======
1. Added a new subprogram, compiled and run via 'make utmplines'.
   It outputs the number of lines in your utmp file.  MAXUSERS,
   defined in idled.h, should be greater than this number.

2. Added a new parameter in the configuration file called
   'idlemethod' which allows more dynamic configuration of
   the CONSIDER_OUTPUT define.  With it, the CONSIDER_OUTPUT
   define (which was improperly set up in the Makefile of
   v1.11) has been removed.

3. Apparently, the HP-UX settings in the Makefile work perfectly
   for SGI Indy's, so a note of that was made.

4. Fixed the BSD/OS2 compile problem in warn.c.  Changed the
   defs in the Makefile for BSD/OS2 as well.

5. Added <sys/ioctl.h> to xlock_check.c for SYSV systems.  OSF,
   specifically, needed it.  It was something I was told of a
   while ago and forgot to put in the last couple versions (oops).
   Thanks to Noam Krendel <noam@ouray.cudenver.edu> for informing
   me of the change that I forgot to include until 8 months later!

6. Some clarifications were made in the man pages.

7. Changed the definition of where the utmp file is.  It now looks
   in the system include files before using its own.  Hopefully
   this will be completely system independent.  A couple of comment
   descriptions for DIGITAL Unix were also added in the Makefile.
   Thanks to Thomas Kunkelmann <kunkel@ito.th-darmstadt.de> for the
   DIGITAL Unix information.

8. Fixed a bug where users could sometimes be warned for being idle
   while they are logging in.  Idled now longer checks to see if
   a user is idle if they have not been logged in long enough to be
   idle.

9. Added in the ability in idled.cf to specify users via a filename
   containing a list of login names.  Valid new commands are of this
   sort:

         timeout file students 10
         session file students 60
         refuse file idiots
         exempt file staff multiple

   where "students", "idiots", and "staff" are the names of the files
   containing the list of login names of those users, one per line.
   The first word on the line is used as the login name; any spaces
   before that name are ignored, as is any text beyond that name
   (such that comments, if desired, can be placed at the end of the
   lines).  Blank lines are ignored.
   Suggestion by Ken Brown <ccksb@trentu.ca>.
   NOTE:  Filenames at this point can contain letters A-Z and a-z,
          numbers 0-9, '_', and '/'.  Therefore,
                /usr/local/lib/idled/Session_Users1
          is a valid filename, but '.' and other characters cannot
          be used.  I'll probably change this for the next version.

10. Fixed a bug where setting warntime to 0 because no warn time was
    desired would actually give 'sleep' seconds of warn time.  Idled
    will now kill users without any warning if warntime is <= 0.

11. With the CONSIDER_OUTPUT define (ioidle = TRUE in the code), the
    warning that idled issued the user would cause the terminal to
    no longer be idle, thus preventing idled from ever logging the
    user off.  Idled now only checks output from the terminal if it
    has not yet warned the user of that terminal.

12. Due to observed difficulties on Ultrix, idled now attempts to
    "become" the user before performing the zap.  Since this is a
    sensible way to do it anyway, all systems will do this.  Please
    let me know if problems arise from this (for whatever reason).


V 1.11
======
1. Changed the "logfile()" call in the num_uids() procedure
   to debug(), which it should have been.  Sorry about the
   messy addition to the log files.

2. Changes to the Makefile to accomodate HP-UX better.
   Thanks to Don Comstock <dlco@hposc003.atl.hp.com>.

3. Notes in idled.h and INSTALL to indicate how to set
   the mouse name correctly for some unices running on
   an IBM compatible, such as Solaris x86.

4. Idled used to wait until the first sleep time has passed
   before starting idle checks.  It now checks all tty's
   upon startup as well.

5. Changed OSF/1 V3 from install1 to install3.

6. Added an option to have idled determine idleness not only
   by input from the user, but also by output from programs
   in that terminal.  This, for example, would prevent a
   terminal with 'top' displaying system information in it,
   or 'ftp' displaying hash marks during a long download
   from being considered idle.  The CONSIDER_OUTPUT define
   in the Makefile determines which is used (and defaults
   to input-only).

7. Some additions to xlock_check and the Makefile have been
   made to try to get idled to work completely under
   BSD/OS2.  The changes are not yet complete.


V 1.10
======
1. Minor changes to the INSTALL file.

2. Changes to the Makefile, including defs for Ultrix 4.4.

3. Changed the ioctl() calls in zap.c for the non HAVE_UTMPX
   method to use tcgetattr() and tcsetattr().  Hopefully that
   will remove system dependencies.

   Also traded in the TCXONC and TIOCSTART ioctl requests
   with a tcflow() call for the same reason, both in zap.c
   and warn.c.

4. Added the cfsetospeed() call in zap.c to eliminate the
   slightly more ambiguous c_cflag = 0, set setting the
   baud rate to 0 is all I really wanted from it anyway.

5. Added a new terminal killing method for systems without
   shell pid's in the utmp file.  To go with it, there is
   now a BAD_PGRP define for such systems that unfortunately
   do not have a useful tcgetpgrp() function that will grab
   the pid of the controlling shell for the tty.  Ultrix
   has a good one, so idled uses this new method.  Is Ultrix
   the only one (such as an ULTRIX define would be better)?

6. Reformatting of procedural comments to make them more
   visible.

7. Changed <termio.h> and <fcntl.h> to be in default include
   directories instead of <sys/*>.

8. Removed all system includes from the dependency lines in
   the Makefile for the various .o's, including the old
   obsolete includes which were no longer used and should
   have been removed long ago.  With it, the <setjmp.h>
   include was moved from idled.h to warn.c, which was the
   only place using it.  Also removed "y.tab.h" from warn.c
   and idled.c, which didn't need it.

   Hopefully this will take care of any dependency differences
   between systems.  Hence, the Makefile.linux is no longer
   included in the distribution.  Hopefully the Linux defines
   at the top of the normal Makefile will be sufficient.

9. Removed -DPROC_SEARCH_1 from the DEFS line for Linux in
   the Makefile.  On slackware, at least, there is no kvm
   stuff, which is required by PROC_SEARCH_1.  I put it in
   without confirming it in idled-1.06beta.

10. Minor man page changes.  Updates to them for the new additions.

11. Rewrote the MULTIPLE Timeouts such that it will allow users
    to have more than one login if the situation is appropriate.
    Now the behavior of multiple logouts is configurable via
    the new "multiples #" command in the configuration file.
    If the # is something like 3, then each user would get to
    keep 3 ttys if the multiple threshold has been reached.
    If the # is -1, then it will allow floor(X/(num users))
    tty's for each user, where X is the threshold limit for
    multiple.

12. Redefined the "conswins" command.  It now is of the form:
        conswins idle <option>
        conswins session <option>
        conswins multiple <option>
    where <option> = normal, off, <number>.  Normal specifies
    that the normal idle, session, or multiple behavior should
    be in place for windows owned by the user on console.  Off
    says that the respective checking should be off for those
    windows.  A Number specifies the time allowed for idle
    and session, or the number of multiple logins allowed.

    NOTE:  Due to this change, if you had "conswins" defined
           in your idled.cf file, you MUST redefine the
           command for idled to properly initialize!!!
           The appropriate change for identical action is
                OLD LINE:       conswins <#>
                NEW LINE:       conswins idle <#>

13. Improved documentation in the Makefile about whether to
    choose install1 or install3 on Solaris 2.x.  Suggestion
    by Peter Turk <p.turk@cxwms.ac.uk>.

14. Added a default option to session limit commands.  It is
    now possible to define a default for anyone who does not
    have a session limit time specified through a group, tty,
    or login command.  A 60 minute default limit would be
    specified like this:
        session default 60
    Thanks to Lincoln Chang <CHANG@svlv03.scs.philips.com>
    for pointing out this missing capability.

15. Defines added to the Makefile for BSDI.  Changes to warn.c
    and xlock_check.c to accomodate.

16. Added in an optional 'ps' hack for systems without HAVE_UTMPX.
    The hack calls ps to get pid's for processes on the tty to kill,
    and kills each of the processes.  Defining PS_HACK will use this
    hack.  Thanks to Scott Gifford <swgsh@genesee.freenet.org> for
    the original hack.

17. Changed the session timeouts so that there is now the ability to
    refuse a user who was warned/logged-out from a session limit
    from logging in again until a specified time has elapsed.  The
    time is specified in the config file as
        session refuse <minutes>
    to refuse the users from being logged in for <minutes> after being
    warned/logged-out.  Default is no refuse time.

18. Redefined the #ifdef sequence for yyrestart().  It is now assumed
    that all systems except Linux do not have it.  If a system does,
    defining HAVE_YYRESTART in the Makefile will fix the multiple
    define.  Not all Linux's have the yyrestart() either, though.

19. Created the Idled Homepage for the most up-to-date information on
    idled.  The url is http://www.cs.hope.edu/~crider/idled/
    These pages are a test base to see if users have interest in such
    pages.


V 1.07
======
1. Patches from Noam Krendel <noam@ouray.cudenver.edu>:
        Changed PRNODEV in xlock_check.c to NODEV, which is hopefully
                more common.
        Made idled exit after printing version information when given
                the -V switch.
        Corrected my typo in idled.c to say "exiting" instead of
                "exititing."

2. Patches from Thomas Schenk <tschenk@risc.austin.ibm.com>:
        Some Makefile changes.
        Addition of README.aix file.
        Added an ifndef AIX around NGROUPS in idled.h.
        The new process search method in xlock_check.c didn't
                work, so stuff needed to be ifndef-ed.  In
                preparation for Thomas' third search method,
                I added #ifdef PROC_SEARCH_1 around the second
                method, and added it to Makefile DEFS as
                necessary.

3. Changed the paths to the CONFIG file and LOGFILE to be set in
   the Makefile.  I want to get all configuration options to be
   set in the Makefile, and perhaps a new config.h, if necessary.

4. Simple change to the example idled.cf.  I had the timeout default
   set to 600, which would be 600 minutes, and not the 60 minutes
   I had intended and specified in the comments.

5. Killed the SIGSYS signal trapping in idled.c.  I don't expect that
   it will be needed; I think I just got a little trap happy.
   Same for SIGXCPU.

6. Changed my typo in warn.c to be __linux__ instead of __lunux__.

7. Changed the definition of main() to old-style declarations.
   Also changed the new strtime one in warn.c.

8. Added some <sys/time.h> includes for idled.c and zap.c,
   both for the purpose of time(), and more to please the
   compiler when including <sys/resource.h>.

9. Changed my Solaris 2.3 sigrelse() calls to signal(x, SIG_DFL).

10. I finally finished my port to SunOS 4.x (and hopefully other
    BSD type systems).  It has been tested on SunOS 4.x and does
    work.  For a reason unknown to me, the same method has no
    effect on Solaris 2.x.  This method currently uses SIGQUIT
    instead of SIGKILL.  Which is better?

11. Some updates to the man pages.  The two man pages are now
    generated by doing 'make', or with 'make man'.  It simply
    creates the real man pages with the correct path to the
    configuration file, compliments of sed.

12. Removed the include of <sys/wait.h> in zap.c.  I have no clue
    why it was there.

13. HP-UX patches to zap.c and idled.h, and updates in the Makefile
    from Richard Allen <ra@rhi.hi.is>.

14. Added another 'install' setup to the makefile, install3.

15. Added an INSTALL file to the distribution.  All comments and
    suggestions regarding improvement of this file would be
    gratefully accepted.


V 1.05
======
1. My appologies for not specifying in the original README that idled had
   only been written and tested on Solaris 2.x.  The TODO file specified
   that I planned to get it working on SunOS 4.1.x, and the Makefile
   suggested that it wouldn't work under BSD, but it should have been
   more openly announced and explained where it would work.

2. Patches for HP-UX from Richard Allen <ra@os.is>:
        Change #else NAME and #endif NAME type things to #else /* NAME */.
        Check to see if NGROUPS is already defined.  Don't redefine it if
                is.
        Some #ifdef __hpux lines for includes needed for HP-UX
        Changed "TIOCSTART" in zap.c to "TCIOSTART".  I think it is more
                common?
        Changed the HAVE_PROC_FS define to be in the Makefile, instead of
                idled.h.
        Changes to xlock_check.c to have it compile if HAVE_PROC_FS is
                not defined.

3. Ifndef-ed NGROUPS.

4. Patches for Linux from Jan Niehusmann <jan@gondor.gun.de>:
        Added a yyrestart() call after the yyparse.  Linux didn't reset
                properly otherwise.  Wrote a dummy yyrestart() for systems
                which don't have one in the libraries.
        Added a linux patch to warn.c instead of termf->_ptr = termf->_base,
                which is not portable at all.  Is there a way to make it so?
        Added some linux ioctl calls, since it needs some different defines.
        Tossed in some linux headers.
        Created a linux Makefile.

5. Changed function declarations in xlock_check.c to old style declaration.
   Yuck!  I hate the old style, but anything will compile it, apparently,
   and not all will do new style (why???).

6. Changes to allow killing of users without any warnings, mainly to allow
   killing a user who is not in X, which otherwise can lock up idled
   (on Solaris 2.x, at least) if it tries to warn.
   Logouts on an X Terminal should now work when the user is not in
   X-Windows.  (Tested o.k. on Solaris 2.x.)

7. Added the BSD code to xlock_check.c so that it should function on
   BSD systems properly.

8. Changed the session timeouts so that when it warns you that you
   will have X many minutes/seconds, you will have that time.  The
   old method had the potential of logging you off much earlier
   than it warned (ie. 1 second) depending on how long it slept
   after it warned.  The new version also uses the warn specification
   from the configuration file, like idle timeouts do.

9. Added an alarm 0 before the sleep() call in warn.c, so that it
   could sleep for 5 seconds, like I wanted.  Patch information
   from Chris Jackman <aj@sdiv.cray.com>.

10. Changed warn.c to not print warning messages to the users when
    idled is compiled in debug mode.

11. Changed the console idle checking in idled.c to look only at the
    last access time when checking CONSOLE_NAME for the console user
    not in X.  Seemed more accurate to me to check for idle time.

12. Changed the addlist() call in parse.y for refuse_cmd to also have
    num as a parameter.  list.c uses it for find() for groups.
    Patch by Chris Jackman <aj@sdiv.cray.com>.

13. Added some signal catching so that idled can log fatal errors
    (such as SEGV and BUS) before attempting to dump core and die.

14. idled.c was doing two forks for daemonizing.  That was a little
    silly.  It only does one now.

15. Patches by Thomas Schenk <tschenk@risc.austin.ibm.com> to have
    idled compile under AIX.

16. Added some error checking in case idled is trying to keep track
    of more users than was allotted with 'maxusers' in idled.h.


V 1.00
======
Original Release.
