ApacheTop ChangeLog

v0.11 (25th February, 2004)
20040224
 * acknowledge & as starting a query string as well as ?

20040219
 * clean up configure.ac, remove unused function checks
 * add --with-libraries and --with-includes to ./configure to provide
   hints about where to look other than standard places

20040218
 * add --enable-pcre and --with-pcre=<path> to ./configure; providing
   these enables regular expression filtering
 * add new filters submenu (press f)
 * add --with-logfile=<file> to ./configure; now you can override the
   default log position without editing the source

20040216
 * inline hashing functions for greater efficiency
 * replace localtime & strftime calls with a bit of maths in display_header()

20040204
 * add largefile checks into configure.ac

20040119
 * change nanosleep to usleep; I think this makes more sense..
   Solaris 2.6 doesn't have nanosleep, and it seems overkill
 * change configure.ac check for wattr_on to attron (fix Solaris compile issue)


v0.10 (14th January, 2004)
20040104
 * remove old useless configure.ac stuff
 * fix crash bug when ApacheTop has nothing to display


v0.9 (22nd December, 2003)
20031222
 * don't call endwin() in a signal handler; set a flag and get the main
   loop to do it. Fixes intermittent segfault when Ctrl-C'ing to exit.
 * change instances of mvprintw() to mvaddstr() where printf features
   were unused anyway; should give curses an easier time.
 * add runtime help display; press s or ?

20031221
 * rework runtime options to make use of "submenus"
 * add facility for removing detailed-display sections (remove Referrers
   from a URL detailed display etc); press t during runtime for submenu
 * move sort runtime keys into their own submenu; press s for this

20031218
 * revamp pthreads detection in configure.ac. It works now, I swear.

20031212
 * code cleanups in display.cc
 * new display mode; press Right-Arrow to show statistics specific to the
   currently highlighted item. If you are highlighting a URL, host and
   referrer statistics for that URL will be shown. Press Left-Arrow to exit
   this display mode.


v0.8.1 (28th November, 2003)
20031128
 * fix for running ApacheTop with no parameters


v0.8 (18th November, 2003)
20031115
 * we now reopen an input file if the inode changes; this catches deletes
   and renames. ApacheTop will wait for the file to be recreated and reopen.

20031113
 * remove mod_log_spread code; I'm not happy with including this since I
   have no idea how it works, no idea how the new filecode breaks it, and
   I haven't had chance to test it. This will be re-introduced when I can
   test it
 * remove option -t; all logs are assumed to be common or combined format
 * adapt internally to facilitate reading from more than one log at once

20031102
 * add more kqueue flags to watch for file deletion/renaming

20031027
 * fiddle with configure.ac so it doesn't require autoconf 2.57

20031014
 * added check for stdarg.h to configure.ac; fixes Solaris build issue
 * fix configure.ac check for pthread library


v0.7 (14th October, 2003)
20031008
 * add thread for monitoring keypresses; if pthreads can be used, this will
   make ApacheTop feel more responsive. Fall back on old behaviour if not.

20031006
 * simplify log-fetching routine; no need to lseek() around the file;
   we just wait (or kqueue) then attempt to read().

20031005
 * wrap header includes in #if/#endif; we should now build on ancient
   standards-breaking systems which don't have some headers.
 * efficiency tweaks to hashing functions and hash class
 * use the return value of ohtbl->insert where possible; saves a call to
   lookup and thus another hash in some cases, which cuts down on CPU time.


v0.6 (5th October, 2003)
20031004
 * change from select() to nanosleep() for sleeping. Not only is this a more
   suitable function, it also stops ApacheTop on Linux eating all the CPU,
   since select() was zero'ing a structure after it's first call. doh.
 * start distributing with autoconf. Disregard previous build instructions;
   you now do the more conventional cd apachetop-X.X/ && ./configure && make
 * add kqueue() support for checking the logfile for updates; autoconf
   enables this automatically if your architecture supports it.

20031003
 * drop qsort() in favour of shellsort() in display.cc; this has the
   advantage of knowing the data it's sorting, thus doesn't have to call a
   comparison sub-function millions of times. This should lower ApacheTop's
   CPU usage a lot.
 * add mod_log_spread support via a patch from Theo Schlossnagle; I haven't
   been able to test this yet.


v0.5 (2nd October, 2003)
20031002
 * make the timed circle store slightly more information than requested, so
   that we're guaranteed to have the requested number of seconds.

20031001
 * add option -r to specify refresh delay interval in seconds.
 * add runtime key 'p' to pause/unpause the updating display. Stats are
   still collected, but the screen is temporarily frozen.

20030930
 * experimental try-to-stop-it-crashing changes; a few cases of possible
   memory trashing were fixed in hash and map classes.
 * fill in dummy "Unknown" value for referrer if a common log is used.
   (fixes crash if user switches to REFERRERs when there aren't any)
 * change default refresh delay to 5 seconds.


v0.4 (29th September, 2003)
20030929
 * add a new display mode; REFERRERs.
   Press 'd' to cycle through URLs, IPs, and now REFERRERs.
 * add option -p to preserve http:// (or whatever protocol) at start of
   referrer string. By default it is cut out to save space onscreen.

20030928
 * remove -lreadline and associated code; hence dropping support for
   altering delay frequency during runtime. This improves portability,
   notably to Solaris. Intending to replace readline with own code.
 * -L changed to -l; no real reason to use uppercase, not sure why I did.

20030927
 * add -s option to keep a given number of URL path segments only. For
   example, -s 2 converts "/images/media/small/x.jpg" into "/images/media/"
   This is rather experimental, so I'd appreciate feedback.
 * remove floating points from table information when the numbers get big
   enough; so we can display bigger numbers in the same table space.
 * internally record referrers from log if they're available.
 * add a visual marker (* just to left of URL/IP), movable by Up/Dn to stats
   table; will be used to provide more information on the selected item.
   This doesn't yet do anything further, however.


v0.3 (26th September, 2003)
20030926
 * add framework for reading more logformats; combined & atop (not done yet)
 * add -L option to lowercase all URLs for display (means /FOO and /foo are
   considered the same and accumulate the same hits/bytes counters)
 * add -q option to keep querystrings on URLs (default is to remove)
 * rejigged -h and -t options to be -H and -T; logtype now uses -t

20030925
 * simplify circle functions by passing structs around, not lots of
   individual ints; cuts down on memory copying too (= faster).
 * display bytecount in header in MB when appropriate.
 * adapt to resizes of the term; display more results if we can, and use
   more of the term's width if there's an excess.

20030924
 * log.[cc|h] added; Log parsing class. Obsoletes logsplit() in apachetop.cc.
   Currently only has common logformat parser, but is easily extendable to do
   combined (and planning on a custom format)
 * don't display NaN when there's no stats; display zeroes.


v0.2 (24th September, 2003)
20030923
 * timed_circle.cc operational improvements to return more accurate
   information about what's really going on with idle-ish servers.
 * only allow one of -t and -h args to be specified.

20030922
 * timed_circle.cc fixes for potentially overrunning arrays, with the help
   of Purify on Solaris. This should fix the segmentation faults a few people
   have been randomly seeing.


v0.1 (22nd September, 2003)
20030922
 * README (some brief docs) and CHANGES added :)
 * display restructured a little; better use made of floating points

20030921
 * circle.[cc|h] moved to hits_circle.*; circle.h added as a virtual class.
   In English, this means you can choose which circle mode to use at startup
   time; one limited by time or one by hits.

20030920
 * timed_circle.cc added; provide detailed statistics for server requests in
   the last $x seconds. The alternative is circle.cc, which similarly
   remembers the last $x requests, regardless of age.


v0.0 (19th September, 2003)
20030919
 * initial freshmeat release
