2000-05-17  Brent Welch <welch@scriptics.com>

	* Released 3.0.2

	* lib/url.tcl: SECURITY FIX.  3.0.0 and 3.0.1 can leak files simply
	by specifying an extra leading /, eg., http://localhost:8015//etc/passwd
	will happily fetch the password file.  This bug is not present in
	the 2.* or earlier versions of TclHttpd.  Thanks to Petrus Vloet for
	finding this one.
	* lib/version.tcl, various Makefiles and Configures. Changed to 3.0.2
	* Applied rel-3-0-2 CVS tag.

2000-05-13  Brent Welch <welch@scriptics.com>

	* lib/include.tcl: Changed Html_ExtractParam to html::extractParam so the
	server-side examples work.
	* htdocs/*: Various clean up of the sample URL tree for the 3.0.1 release.

2000-05-12  Brent Welch <welch@scriptics.com>

	* Various additions to installation documentation
	* Created 3.0.1 distribution

2000-05-10  Brent Welch <welch@scriptics.com>

	* bin/httpd.tcl: Moved development script library to
	the front of the auto_path.
	* lib/httpd.tcl: Made the SSL handhake non-blocking. BUG 5252.
	* lib/cgi.tcl: Changed exec of CGI script to use
		>2 /dev/stdout (if that device exists) instead of
		|& cat (to eliminate a process)
	* lib/doc.tcl: Fixed ~username accesses.
	* lib/mail.tcl: This now looks for /usr/lib/sendmail or
	for /sbin/sendmail for those FreeBSD folks out there.
	* lib/status.tcl: Beefed up /status/size

2000-05-08  Melissa Chawla  <hershey@scriptics.com>

	* lib/httpd.tcl: removed extra requirement that the caDir
	Httpd(SSL_CADIR) be an existing file.

2000-05-08 Brent Welch <welch@scriptics.com>

	* lib/httpd.tcl: Fixed Httpd_SelfUrl to correctly insert the port
	number if the client passed the Host: HTTP header. 
	Previously that case wasn't setting custom port numbers correctly.
	* lib/version.tcl: Upped to 3.0.1
	* htdocs/register.tml: Added version string to form data
	* bin/test/bigpost.tcl: Fixed argument handling
	* lib/cgi.tcl: set env(SERVER_HTTPS_PORT) if the server has
	a secure port open.

2000-05-05 Brent Welch <welch@scriptics.com>

	* lib/auth.tcl, lib/httpd.tcl:  The Basic authentication module
	now sets the data(remote_user) and data(auth_type) variables,
	which are later copied into the REMOTE_USER and AUTH_TYPE
	environment variables.
	* lib/log.tcl: Log_FlushMinutes will call Log_Flush if it sees
	that the chain of after events has already been started.  This
	will ensure that the next flush occurs when expected.
	* bin/httpdthread.tcl, lib/thread.tcl:  fixed initialization
	of threaded interpreters.
	* htdocs/*:  Added various test pages.

2000-05-03 Brent Welch <welch@scriptics.com>
    
	* bin/httpd.tcl:  Fixed startup code to find bundled TclLib
	* lib/doc.tcl: Added check against bogus Content-Type that can
	be generated by IE 5 when a POST keep-alive is followed by a GET.
	The GET request contains the Content-Type from the POST (!), which
	if it is multipart/form-data, is completely bogus.

2000-05-01 Brent Welch <welch@scriptics.com>
    
	* Added Httpd_DumpHeaders to get the HTTP protocol state out
	of a connection

2000-04-28 Brent Welch <welch@scriptics.com>
    
	* Fixed Doc_RedirectSelf to use html::resolveUrl to correctly
	convert relative URLs into an absolute one.

2000-04-26  Brent Welch <welch@scriptics.com>

	* Released 3.0.0 - applied rel-3-0-0 tag

2000-04-26  Brent Welch <welch@scriptics.com>

	* DIST_build: added directory for distribution scripts
	* htdocs/.tml: Tracking name changes in ncgi
	* lib/doc.tcl: Added call to ncgi::urlStub so pages can call this procedure
	instead of using $page(url)

2000-04-25  Brent Welch <welch@scriptics.com>

	* Makefile.in: fixes for make dist and make install
	* htdocs/*.tml: various clean up for new html:: proc names
	* lib/cgi.tcl: Nuked reference to Httpd(fcopy)

2000-04-24  Brent Welch <welch@scriptics.com>

	* bin/README_custom: Added read-me about customizing TclHttpd
	* configure.in: Fixed laundering of crypt and limit version numbers
	on windows, where of course the macro to use is NODOT_VERSION
	as opposed to WIN_VERSION...
	* bin/httpd.tcl: Fixed -debug 1 starup under Wish to open the console.
	* lib/httpd.tcl: Fixed bug in closing keep-alive sockets that was
	introduced in the 4/21 putback.  Improved handling of bogus
	data inbetween keep-alive requiests.
	* lib/status.tcl: Fixed doc hit display
	* lib/srvui.tcl: Fixed home page counter

2000-04-21  Brent Welch <welch@scriptics.com>

	* lib/httpd.tcl: The server now drains the socket if the Domain
	handler choose not to read the POST data.  This makes it more
	reliable for the client side to read the server's reply.  Added
	Httpd_GetPostDataAsync and Httpd_CopyPostData so Domain handlers
	have a clean interface to asynchronously deal with POST data.

2000-04-20  Brent Welch <welch@scriptics.com>
	* configure.in, Makefile.in: Fixes so that crypt and limit can have
	a different version number (1.0) than TclHttpd
	PARTS LIST ALERT.  This affects the libcrypt.1.0.so, liblimit.1.0.so
	and the directories lib/crypt1.0 and lib/limit1.0
	* pkgIndex.tcl.in: Removed incorrect hardwired version number.
	* lib/httpd.tcl: Added Httpd_Name and Httpd_Protocol to go with the
	existing Httpd_Port that return the server name, protocol (http or
	https), and the port associated with a particular connection.
	* htdocs/forms: General clean up of the CGI forms here.  Added
	multipart file uploading test.

2000-04-19  Brent Welch <welch@scriptics.com>
	* bin/httpd.tcl: Fixed call to tcl_findLibrary
	* bin/tclhttpd.rc: Change SSL parameters a bit.
	* lib/doc.tcl: restored old page(querytype) variable for compatibility

2000-04-18  Sandeep Tamhankar <sandeep@scriptics.com>
        * Makefile.in: Added calls to @CYGPATH@ so that Cygwin //z/
        references get converted to z:/.

2000-04-18  Brent Welch <welch@scriptics.com>
	* lib/doc.tcl, lib/url.tcl: Fixed POST data to templates

2000-04-18  Brent Welch <welch@scriptics.com>
	* lib/debug.tcl: Added /debug/showproc
	* lib/doc.tcl: Integrated with ncgi:: module for page query data
	* lib/httpd.tcl: Added Proxy_Dispatch hook
	* lib/mime.types: Added WAP types
	* lib/status.tcl: Removed hardwired use of /status
	* lib/thread.tcl: Switched to use new Thread package
	* htdocs: Changed most .html files into .tml templates
	* htdocs/libtml/form.tcl: Removed this and replaced with uses
	of tcllib html:: module.

2000-04-03  Brent Welch  <welch@scriptics.com>

	* lib/httpd.tcl: Fixed accesshook "denied" case where the catch
	inside Url_Dispatch was catching an early return.  This caused
	an extra error reply after the 403 reply that was already generated.
	Fixes bug 4741
	* lib/include.tcl: Added support for the "exec" command in
	server side includes.
	* lib/log.tcl:  Added "file mkdir" to Log_SetFile so it will create
	the log directory if it doesn't exist.  This is wrapped in a catch,
	as are half the lines of code in this procedure, so logging silently
	fails if it cannot open the log file for some reason.

2000-03-27  Brent Welch  <welch@scriptics.com>

	* lib/version.tcl: updated the date in the 3.0.0 version string
	* lib/thread.tcl: Removed Thread_Disable and replaced it with
	Thread_Enabled, a boolean function that is used by other modules
	to see if thread were enabled when the server started.  Also
	fixed a bug with undefined Url(postlength)
	* lib/url.tcl: Changed Url_PrefixInstall to check Thread_Enabled
	before deciding that a URL domain should be handled in a thread.
	This makes it easier to stub out the thread module, if necessary.
	Fixed bug in Url_PrefixRemove in the case that the prefix contained
	regexp special characters.
	* lib/config.tcl Added module to manage the configuration options
	stored in the tclhttpd.rc file.
	* bin/tclhttpd.rc: Major re-wack so this only contains configuration
	parameters in a stylized Tcl script.  This file is sourced very
	early, before command line arguments are processed, in order to
	establish a baseline configuration.
	* bin/main.tcl: Added this new file, which has the bulk of the
	application initialization code in it - all except actually
	opening the server sockets and the main loop and some other details.
	* bin/httpd.tcl - Major re-wack to use both tclhttpd.rc and main.tcl

	Also moved a bunch of files into subdirectories:
	* bin/mini: The variations on the 250-line mini httpd
	* bin/test: Scripts that test the server.  These are not standard
	Tcl test suite files, which will appear someday in the main tests
	directory, hence the different location.
	* bin/util: Random scripts, like crypting passwords and such.

	Htdocs changes
	* htdocs/access/null: New directory to test out AuthNullCallback,
	which implements a funky bootstrapped password registry
	* htdocs/access/bytcl: Changed this to illustrate password checking
	callbacks more clearly

2000-03-22  Brent Welch  <welch@scriptics.com>
	
	* lib/doc.tcl  Created DocAccessHook and moved authentication
	checking out of DocDomain and into DocAccessHook.  Also did
	cleanup so that Doc_Virtual would work if you used Doc_AddRoot
	to splice in other directory trees into the URL tree.  The
	nice side effect of DocAccessHook is that you can create
	a file system structure to parallel application-direct URLs,
	(e.g., /debug and /status) and put .htaccess or .tclaccess
	files in them to control access to the built in URLs.
	* lib/url.tcl  Simplified Url_Dispatch by removing the
	UrlCache array.  Also added Url_PrefixMatch
	* lib/auth.tcl  Define env(REMOTE_USER) and env(AUTH_TYPE) in the
	case that .tclaccess files are used to check Basic Authentication.
	* REMOVED lib/base64.tcl in favor of the Standard Tcl Library
	base64 package. (You can find it in deprecated/base64.tcl)

2000-03-18  Brent Welch  <welch@scriptics.com>

	* lib/url.tcl	Added Url_AccessInstall and changed Url_Dispatch
	to call registered access control hooks before dispatching to
	domain handlers.  Changed URL redirect scheme to not use the
	UrlCache hack, but to use a URL access control hook.
	* lib/redirect.tcl: Added a URL access control hook to implement
	per-URL redirects.
	* lib/httpd.tcl: unbroke Httpd_RedirectSelf
	* lib/thread.tcl: fixed use of undefined procedure
	* lib/admin.tcl: Removed most of the redirect code from here.
	* htdocs/redirect: Added sample redirect file.  This is loaded
	during startup and when you poke the /redirect/reload direct URL.
	* bin/httpd.tcl: added initialization for the redirect module.

2000-03-07  Melissa Chawla  <hershey@scriptics.com>

	* htdocs/access/bydir/user.cgi
	* htdocs/cgi-bin/user.cgi
	* lib/auth.tcl
	* lib/mail.tcl: changed calls to Base64 library to use the
	"base64" namespace (version 2.0 of the package).


(Please see the "changes" file for a slightly higher-level view
of the changes that goes back much farther and is organized by
TclHttpd releases.)
