--3.1.2--

   1.	Added missing #ifdef THROTTLE_CLIENT_IP & #ifdef THROTTLE_REMOTE_USER
   	around checks in policy_concurrent().

--3.1.1--

   1.	Found race condition in get_client_ip() and get_remote_user() that
   	could result in duplicate entries appearing in the lists. Should
   	now be fixed.

   2.	Enhanced code to reduce instances where % goes way above 100%. This
   	occurs because the request bytes sent is logged at the end of the
   	request, so that dynamic documents can be handled. This enhancement
   	will identify simple file requests and count them before the policy
   	is applied. Dynamic requests are still logged at the end of the
   	request.

   3.	Merged some critical sections to reduce number of calls to
   	critical_aquire() and critical_release().

---3.1---

   1.	Back by popular demand, the % of limit reached column in the
   	status display.

   2.	Removed ThrottleSlack.  This global could poses problems for the
   	Original policy when the slack is greater than the period. Now the
   	slack is calculated as 1/5 the period.

   3.	USE_SYSTEM_V_SHARED_MEMORY sm_pool_create() now clears the assigned
   	block of shared memory.

   4.	Fixed Speed policy so that when when we fall below the limit, the
   	previous applied delay is reset to zero for the status display.

   5.	Fixed Speed policy overflow for large limits when the period resets.

   6.	Fixed Original policy problem concerning old byte unit calculation and
   	the change to kbyte units which meant the delays never kicked in.

   7.	No more throttling of the throttle status display. Also the bytes
   	sent, etc. are not counted in the stats.

   8.	Modified ThrottleUser to support "*", which loads all the users
   	from the system user database.  Also "/path/to/htpasswd" file that
   	provide a list of real users, virtual user which have no user id
   	are ignored. Requested by Wolf <wolf_pro@inbox.ru>.

   9.	Added ThrottleClientIP, throttle-clients to monitor and throttle
   	client IP addresses. Can be disabled with #undef THROTTLE_CLIENT_IP
   	or specifying a pool size of 0. Requested by Os Tyler
   	<os@nothingspecial.com>

  10.	Added ThrottleRemoteUser, throttle-remote-users to monitor and
   	throttle autheticated remote users. Can be disabled with
   	#undef THROTTLE_REMOTE_USER or specifying a pool size of 0.
   	Requested by Wolf <wolf_pro@inbox.ru>.

  11.	Added throttle hierarchy: client-ip, authenticated user, local user,
  	server. On succesful requests, this has the affect of several
  	different throttles monitoring the same request. Variation of a
  	requested by David M. Shirley <david@webquarry.com>.

  12.	Format of mod_throttle.runtime file altered to support new data
  	elements and sections.

  13.	Added new policy Idle.

  14.	Changed format of elapsed time display: d+H:M.S Leading zero elements
  	are not shown.

  15.	Added new status column: idle time

  16.	Change status displays to use style sheets. Therefore for best viewing
  	you need a CSS capable browser.

  17.	Fix bug in byte_size() to proper display 1500M. Only exact multiple of
  	1024 get a M or G suffix by design.

---3.0---

   1.	Complete overhaul the shared memory and semaphore code:

  	   a)	POSIX shared memory & semaphore finally work (tested Solaris 5.7)
	   b)	The shared memory segment and semaphores are now released
	   	properly when Apache is shutdown or restarted.
  	   c)	No more hard-wired shared memory keys; this should allow
  	   	more than one parent Apache process to run without conflicts
  	   	with shared memory & semaphore keys.
	   d)	There is no hardwired limit on the number of throttles we can
	   	have in shared memory.  Only limited now by the size of shared
	   	memory itself.

   2.	Added support for <directory> and <location> blocks.

   3.	Created alternative throttle policies that can be applied per user,
   	directory, location, or host.

   4.	Runtime information preserved across shutdown & restarts.

   5.	Revamped throttle status display:

   	   a)	ability to reset individual or all stats
   	   b)	dump & restore the stats while running
   	   c)	Fixed the "(unknown)" host name for the parent server.

   6.	Changed the busy error status to 503 HTTP_SERVICE_UNAVAILABLE.

   7.	ThrottleMaster removed in favour of using ServerAlias.

   8.	Smallest measure of volumn (bytes sent) is now kilo-byte units. This
   	allows for longer periods between roll-over adjustments in all the
   	policies. The GB/month column dropped in favour of the KBytes-sent

   9.	Added the ability to view induhvidual throttles.

  10.	Generated patches for mod_userdir to support /~user/throttle-me handler
  	and mod_proxy to support monitoring of bytes_sent through proxy requests.

----2.12----

1.	Do not refresh when set to zero (0).

2.	Added ThrottleAveragePeriod & ThrottleDivideBy to allow fine tuning of
	the averaging algorithm.  Shorter periods should be more frequent
	adjustments in the statistics, while a higher divide-by value would mean
	smaller changes in the statistics.

	It is uncertain if ThrottleDivideBy provides any significant advantage.
	Consider it experimental and may be removed or modified at a later date.

----2.11----

1.	From: "Harry W. Waddell" <waddell@caravan.com>
	Works on NetBSD 1.4.3_ALPHA on i386 hardware. Should work on any NetBSD
	1.4.x or 1.5 system with the following change:

	append to line 182:

		|| defined(__NetBSD__)

	[ACH - This change has now been applied to the source.]

----2.10----

1.	Fix for FreeBSD; mod_throttle will now compile against the System V
	API, instead of POSIX.  The reason the POSIX code is disabled is
	because named semaphores are not supported under FreeBSD and Linux
	at the moment; after which the shared memory code would need testing.

2.	Tested on SunOS 5.6.  Apache must be built with:

		--enable-rule=SHARED_CORE

3.	It is not recommended to build mod_throttle as a static module into
	Apache.  However, if you really want to do this, Martin Lathoud
	<nytral@enDirect.qc.ca>, recommends instead of specifying
	--activate-module for the Apache configure script, to use:

		--add-module=src/modules/throttle/mod_throttle.c
		--enable-shared=throttle

	Then its a simple matter to turn sharing off or on.  This assumes you
	unpacked the mod_throttle source within the Apache source tree.

----2.09----

1.	Switched to using APXS module building.
2.	Added version for Apache server-info display.
3.	Added ThrottleContentType for text/plain output. (Highly requested
	by script writers for statistics.)
4.	Added author's mailto: in footer of status display.
5.	DISABLED POSIX code.  Never did work and have no time nor POSIX
	machine to address it.
6.	Added very brief licensing terms as requested by the Debian folks
	See top of mod_throttle.c.

----2.08----

  o	Fix include order of <sys/sem.h>.  I miss-applied the suggested fix
	for union semun.

----2.07----

  o	Fixed missing comma bug.
  o     Added fix for union semun being missing on some systems.
  o     Added untested code in #ifdef POLITE_RESPONSE for when a virtual host
	is throttled.
  o	Add ThrottleMaxDelay, see index.shtml for more information

----2.06----

No log kept.


---1.0---

See Mark Lovell code.
