2001-09-18  Kriston Rehberg  <Kriston@AOL.NET>

	*** AOLserver 3.4.2 RELEASED ***

	* Makefile: install rule depends on "all" rule for the benefit of
	Macintosh OS 10.

        * nsd/nsd.h: version and label to 3.4.2.

	* nsd/tclnsshare.cpp, nsd/tclmisc.c: Fix for 3.4 ns_share problem
	was not fully applied to 3.4.1.

2001-09-06  Kriston Rehberg  <Kriston@AOL.NET>

	*** AOLserver 3.4.1 RELEASED (internal testing release) ***

2001-09-05  Kriston Rehberg  <Kriston@AOL.NET>

	* nsd/tclnsshare.cpp: For ns_share Tcl command only; several crash
	bugs fixed and cleaned up the code to better accomodate how
	ns_share is used in real-world code.  We still strongly discourage
	the use of ns_share and a warning upon its first use per variable
	is logged.

2001-05-18  Kris Rehberg  <Kriston@AOL.NET>
	
	*** AOLserver 3.4 RELEASED ***

2001-05-17  Kris Rehberg  <Kriston@AOL.NET>

	* nsd/conn.c: conn is now aware of Latin-1 charsets for ADPs,
	requests, query data, and the like in Tcl 8.  This does not affect
	IS0-8859-1 (see nsd/adp.c below).
	(NsTclConnCmd): [ns_conn encoding] reports the encoding used (see
	nsd/adp.c below).
	
	* nsd/adp.c: The ADP requests, file parsing, file includes, and
	all related ADP functions now force ISO-8859-1 for support of all
	Latin-1 character sets in ADPs on nsd8x.  There is new handling of
	UTF data in Tcl 8 that was implemented in AOLserver 4 which has
	been back-ported to support Latin-1 *only* in AOLserver 3.4.
	Previously, nsd8x could not handle anything but 7-bit ASCII in
	ADPs.  The reading of Latin-1 charsets seemed to fail
	intermittently in previous 3.x AOLservers.  The reason was that
	AOLserver reads files in as UTF-8 and some Latin-1 characters
	confuse Tcl 8's UTF reader.  (Note that the en-us characters in
	Unicode, when encoded in UTF-8, look just like 7-bit US ASCII to
	computers).  Naturally, when non-en-us characters are encountered,
	the Tcl 8 UTF-8 reader gets confused.  The correct MIME type is
	now returned for all Latin-1 charsets.  This does not affect
	IS0-8859-1.

	* thread/pool.c, thread/pthread.cpp, thread/reentrant.c: Tls
	entries for memory pools, thread pools, re-entrant libc
	replacements, are self-initializing.

	* thread/Makefile, tcl8.3.2/unix/Makefile.in: Moved Tcl nsthread
	support into Tcl sources.

	* tcl8.3.2/generic/tclEvent.c: Fixed library path code as in
	AOLserver 4 so Tcl 8 can find encoding files for UTF in a
	thread-safe manner.

	* nsd/tclstubs.cpp: Back-ported some AOLserver 4 initialization
	code.  Tls self-initializes.  UTF-aware encodings based on file
	extension (from AOLserver 4).  See nsd/adp.c below.

	* nsd/tclinit.c: Tls entry for Tcl interps is self-initializing.

	* nsd/nsmain.c: UTF encoding-aware (see nsd/adp.c below).

	* nsd/nsd.h: New UTF encoding routines and version strings (see
	nsd/adp.c below).

	* nsd/dstring.c: NS_DStrings are self-initializing.  You should
	not need to use Ns_DStringInit anymore, though you still can with
	no ill effect.

	* nsd/dbinit.c (IncrCount): Tls entry for db handles is
	self-initializing.

	* nsd/adp.c: Tls entry for ADP parser is self-initializing.
	
2001-04-26  Kris Rehberg  <Kriston@AOL.NET>

	* AOLserver 3.4pre1 released.  The ChangeLog will be updated in
	the next release (see above).

2001-03-14  Kris Rehberg  <Kriston@AOL.NET>

	* nsd/nsmain.c, nsconf.h: non-quiet startup is now the default.
	The -q option turns the annoying, noisy startup back on.

	* include/Makefile.global: Makefile.global wasn't working on
	OpenBSD 2.8.  Got rid of -E and changed libtcl8.3g.a to
	libtcl83g.a for all BSD platforms.  Many thanks to John Borwick
	for the patch!

	* nsd/conn.c: Straightened out an error text while looking for
	something else.
	
	* nsd/serv.c: [ #232139 ] Buffer overflow in ParseAuth().
	ParseAuth() uses a 256-byte buffer for decoding authentication
	data. Unfortunately, Ns_HtuuDecode() does not do an adequate job
	in preventing data overflow due to the way it tries to loop unroll
	4-bytes per iteration.  To reproduce: Using IE 5.xxx, navigate to
	a page that challenges (ie 401 return). Fill the user/pwd fields
	with as much data as possible. Hit return, and watch AOLserver die
	due to stack corruption (on Linux, at least). It is preferable to
	allocate the storage dynamically.  Thanks to Adam Zell for the bug
	report and patch!!

	* generic/tclCmdIL.c (InfoProcsCmd): [ #230640 ] memory leak in
	"info procs" command.  Arsdigita plus-patches fixed a memory leak
	in "info procs" command (in Tcl library). It neglects to free
	memory after the "info procs" command is executed. nsd8x only.
	Fixed via hack to Tcl8.3.2 in AOLserver 3.3 (Jim Davidson).
	
	* thread/tcl8x.c: [ #406708 ] Tcl TSD data leaks on
	thread-exit. Added new, custom per-thread Tcl_Obj allocator for
	NsTclFinalizeThread().  Fixed is in 3.31 and 4.x.  Check
	thread/tcl8x.c for detailed comments.  Thanks to Zoran Vasiljevic
	for the bug report and suggesting a fix.
	
	* tcl/namespace.tcl: [ #230624 ] Namespaces are not used properly.
	There is a problem with current modules/tcl/namespace.tcl Instead
	of correctly using namespace import/export capabilities, it just
	makes a copy of each procedure found within a namespace, even it
	is imported from a foreign namespace. This adds unnecessary heap
	space to have each exported procedure body replicated in more than
	one namespaces but what is worst, all imported procedures, instead
	of running within their declaring namespace, as standard TCL does,
	they will run in their caller namespaces. Thanks to Petrica
	Clement for this fix!

2001-03-14  Dossy Shiobara  <dossy@panoptic.com>
	
	* nsd/nsmain.c: [ #230646 ] Specifying user/group dumps core on
	Linux.  Segmentation fault when using -g <group> flag
	(reproducing this change from HEAD into the nsd_v3_r3_p0 branch)
	line 316 should read Ns_GetGid(garg) instead of
	Ns_GetGid(optarg). Thanks to Scott G and Dossy, and Daniel
	P. Stasinski for this one.

2001-03-12  Kris Rehberg  <Kriston@AOL.NET>

	*** nsd_v3_r3_p0 (AOLserver 3.3.0) BRANCH BEGINS ***

2001-03-08  Kris Rehberg  <Kriston@AOL.NET>

	*** AOLserver 3.3 RELEASED ***

2001-03-08 Jim Davidson

	* Added NsTclFinalizeThread() at end of Tcl TLS cleanup to
	finalize Tcl 8.x thread data.  This fix was the last hurdle for
	finalizing nsd8x.

2001-01-31  Kris Rehberg  <Kriston@AOL.NET> 

	* Makefile (MODULES): nsunix, nsvhr, and nsodbc moved to the
	Module Collection.

2001-01-16  Jim Davidson

	* Cleaned up sloppy use of the nsServer global wherever it's used.

2001-01-04  Kris Rehberg  <Kriston@AOL.NET> 

	* nsd/tclmisc.c: Ticket 13090.  ns_striphtml crashing-bug in nsd8x
	fixed.

2000-12-14  Kris Rehberg  <Kriston@AOL.NET> 

	* tcl/http.tcl: Corrected typo _ns_ns_http_readable.

	* nsd/dstring.c (Ns_DStringPrintf): Ticket 12765. Ns_DStringPrintf
	uses vsnprintf instead of vsprintf with specified buffer size.
	Thanks to "??".

	* nsd/return.c (Ns_ConnConstructHeaders): Ticket
	12764. If-Modified-Since (304) works with keepalive now. Thanks to
	Jim "??".

2000-12-13  Kris Rehberg  <Kriston@AOL.NET> 

	* include/Makefile.global: Builds with architecture-specific
	optimization options. Auto-detects architecture for most
	platforms.  Auto-select compiler and Purify usage from command
	line, e.g.:
	gmake nativeme=1   (all non-free Unix)
	gmake gccme=1      (some non-free Unix)
	gmake PURIFY=/path/to/purify/executable  (Solaris and Irix only)

	* nssock/Makefile*: now installs The Right Things in The Right
	Places.

	* nsd/Makefile: nsd8x is the default AOLserver now (nsd symlinks
	to nsd8x).

	* nsd/sample-config.tcl: Added some tuning parameters for easy
	reference.

2000-12-12  Kris Rehberg  <Kriston@AOL.NET> 

	* nsvhr/nsvhr.c (UDSProxy): More type changes.

	* nslog/nslog.c (Ns_ModuleInit): pointer-to-function casted.

	* nscp/nscp.c (GetLine): buf changed to char *; casted AcceptProc.
	
2000-12-12  Jim Davidson

	* nssock/sock.cpp: Fixed multiple-load problems, added sndbuf,
	rcvbuf, sendwait, and recvwait options. Added configurable backlog
	via Ns_SockListenEx. Fixed compile bugs for ssl. Restructured the
	socket module to wait in server busy situations instead of sending
	the server busy message.  Also, moved the graceful close burden to
	the SockThread from the connection thread.

	* thread/win32.cpp: Moved WinThread allocation to DllMain,
	eliminating GetWinThread function. Also, disabled thread cleanup
	for final thread to avoid any TLS cleanup callbacks attempting to
	invoke code in unloaded libraries like Tcl. Removed call to
	NsInitThread no longer needed. Switched to rolling condition
	broadcast wakeup as in the sproc code.  More fixes for new Thread
	context model.
	
	* thread/tls.c: Changed NsLock API's to return 1/0 instead of
	NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep things
	simple.

	* thread/thread.c: Changed thread enum to return Ns_Thread, not
	Ns_Thread pointer which didn't make much sense.  Updated "ns_info
	pools" command to reflect change. Fixed bugs with Ns_ThreadEnum
	and pool counters. Update of the Ns_Pool API to support more stats
	gathering available via new Ns_PoolStats API. Remove Thread->etime
	and NsPool API's. Moved sprintf of default thread name from
	NsThreadMain to NsInitThread under protection of threads
	lock. Added comment for NsInitThread. More fixes for new Thread
	context model. Updated sproc.cpp code for new Thread management
	and removed the wait for thread startup which shouldn't be
	needed.

	* thread/test.c: Cleaned up code a bit to quiet compiler.  Better
	test for PTHREAD_TEST.  Fixed undefined var bug for sproc.  Added
	some comments, a native pthread test, and a recursive stack
	checker.

	* thread/tcl8x.c: Added Tcl_JoinThread for benefit of Tcl8.4.

	* thread/sproc.cpp: Changed NsLock API's to return 1/0 instead of
	NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep things
	simple. Fixed some comment bugs, update thrPtr->tid after
	fork. Added call the NsInitThread. Updated sproc.cpp code for new
	Thread management and removed the wait for thread startup which
	shouldn't be needed.

	* thread/pthread.cpp: Changed NsLock API's to return 1/0 instead
	of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep things
	simple. Fixed bug of not setting the tid correctly. Added call the
	NsInitThread.

	* thread/pool.c: Added Ns_PoolEnum to get at pool stats as with
	mutexes and threads, removing the old Ns_PoolStats API's and
	updating the "ns_info pools" command. Fixed bugs with
	Ns_ThreadEnum and pool counters. Update of the Ns_Pool API to
	support more stats gathering available via new Ns_PoolStats
	API. Removed <mutex.h> for sgi which shouldn't have been
	there. Removed the sbrk() code for now, was crashing SGI
	(probably not thread safe). Use sbrk() on Unix instead of malloc
	to avoid any malloc overhead or contention. Reduced the zippy
	allocator page size to 16k from 64k. 

	* thread/pool.c, thread.c, sproc.cpp: Re-structured management of
	the Thread context to better support threads created without
	Ns_ThreadCreate (e.g., Java VM threads).
	
	* thread/mutex.c: Changed NsLock API's to return 1/0 instead of
	NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep things
	simple.

	* thread/cs.c, memory.c, mutex.c, pool.c, pthread.cpp,
	reentrant.c, rwlock.c, sema.c, sproc.cpp, tcl8x.c, test.c,
	thread.c, win32.cpp: Restructured the thread interfaces, moving
	the master lock to the platform interface code, integrating the
	zippy allocator with Ns_Pool/Ns_ThreadAlloc and use of a new
	simple direct allocator for all thread objects.

	* win32/nsthread/nsthread.dsp: Removed master.c and oldpools.c.

	* nsd/unix.c: Made ns_eval command disabled by default to avoid
	using SIGUSR2.

	* nsd/tclthread.c: Changed SETOBJ macro to SetObj function which
	no longer sprintf's directly into interp->result.

	* nsd/tclmisc.c: Added Ns_PoolEnum to get at pool stats as with
	mutexes and threads, removing the old Ns_PoolStats API's and
	updating the "ns_info pools" command. Changed thread enum to
	return Ns_Thread, not Ns_Thread pointer which didn't make much
	sense.  Updated "ns_info pools" command to reflect change.  Added
	more info for "ns_info pools".  Added "ns_info pools" command to
	dump memory pool stats.
	
	* nsd/tclinit.c: Added nsconf.quiet and nsconf.startuptimeout.
	Made ns_eval command disabled by default to avoid using SIGUSR2.
	Added nsConfQuiet flag to quiet down the startup messages with the
	-q flag.

	* nsd/sock.c: Added Ns_SockListenEx.

	* nsd/serv.c: Ensured the conn thread name was set first. Added
	Ns_RegisterAtReady callbacks for indicating server no longer busy.

	* nsd/sched.c, nsmain.c, serv.c, sockcallback.c: Added code to
	wait for conn thread, sock callback, and sched idle at startup to
	help alleviate code start problems.

	* nsd/nsmain.c: Shuffled initialization to ensure command line
	args are read before calling any Ns API's, ensuring zippy malloc
	can be set if needed.

	* nsd/nsconf.c: Added nsconf.quiet and nsconf.startuptimeout.
	Made ns_eval command disabled by default to avoid using SIGUSR2.

	* nsd/dstring.c: Remove unused vars.  Uses ns_realloc to grow
	strings and maintains dstring stack in the staticSpace instead of
	the *addr pointer for compatibility with Tcl dstrings.

	* nsd/callbacks.c: Added Ns_RegisterAtReady callbacks for
	indicating server no longer busy.

	* nsd/binder.c: Added Ns_SockListenEx.

2000-12-12  Kris Rehberg  <Kriston@AOL.NET> 
	
	* nsvhr/nsvhr.c (VHRProc): Matches hostnames regardless of case.

	* nssock: Supports Rainbow CryptoSwift SSL accelerators
	(compile-time option; requires the Swift SDK from
	http://www.rainbow.com/).

	* nsd/nsmain.c (Ns_Main): Changed order of some config default
	initialization.  Config options cleaned up a lot.  Usage message
	very less glib.  SUNWspro dumped core on usage message due to
	nsconf.argv0 quigglyness.
	
2000-10-20  Kris Rehberg  <Kriston@AOL.NET> 

	*** AOLserver 3.2 RELEASED ***

2000-10-20  Jim Davidson

	* win/tclWinSock.c: Fixed deadlock in sockets init code.

	* nsd/nswin32.c: Fixed service install code to allow long
	pathnames with spaces.
	Added/use ns_pipe which set's close-on-exec like ns_sockpair.
	

2000-10-17  Kris Rehberg  <Kriston@AOL.NET> 

	* nssock/sock.cpp: extra padding on Server Busy message to defeat
	MSIE friendly error messages.

	* nsd/nsconf.h: All configuration option defaults have been moved
	to nsconf.h as #defines.

	* Makefile (install): Tcl library for nsd8x is now installed into
	$(PREFIX)/lib/tcl8.3.

	* tcl/http.tcl (ns_httpopen): Host:port is now sent to remote host
	if != 80.  Suggested by Jerry Asher.

	* tcl/fastpath.tcl (_ns_dirlist): All kinds of Win32 pathnames
	should now be working.  Thanks to Eric Klein.

	* nsd/return.c (Ns_ConnReturnNotice): New options "errorminsize",
	to pad error messages to defeat MSIE friendly errors (fix
	suggested by ArsDigita) and "noticedetail" to return more detailed
	information on notice pages.

	* nslog/nslog.c: suppressquery option added to suppress logging of
	query data.

	* nslog/nslog.c: LogExtendedHEaders option added.  Contributed by
	ArsDigita.


	* nsd/tclfile.c: Input string to mktemp is copied, because mktemp
	edits the string in-place and that's generally a bad thing to do
	with argv's.  Contributed by ArsDigita.

	* nsd/tclnsshare.cpp (ShareTraceProc): Patch to tclnsshare.cpp to
	avoid race conditions if the shared value is a list.  Contributed
	by ArsDigita.

	* tcl/http.tcl (ns_httpopen): CRLF now returned in ns_httpopen.
	Contributed by ArsDigita.

	* tcl8.3.2/generic/tclCmdIL.c: Nonsense case of lsorting a list
	with length <= 0 caused a memory leak.  Fixed.  Contributed by
	ArsDigita.
	
	* nsd/adpfancy.c: We now use the Arsdigita version of adpfancy.
	Contributed by ArsDigita.
	
	* nsd/adp.c: Sundry ArsDigita changes.

2000-10-16  Kris Rehberg  <Kriston@AOL.NET> 

	* tcl/init.tcl:  Initialize errorCode and errorInfo like tclsh
	does.  From ArsDigita.

	* nsd/nsd.h, nsd/tclcmds.c, nsd/tclvar.c: nsv_names Tcl command
	lists names of nsv's in memory.

	* tcl8.3.2: The complete Tcl 8.x distributions are now included.
	They aren't installed with AOLserver's "gmake install", but you
	can install them manually if you want to use them for the i18n
	encodings and stuff like that.  It will install into the
	"lib/tcl8.3" directory of the binary distribution with AOLserver
	3.3 and later.

	* nsd/nsmain.c (Ns_Main): Had to move Ns_ThreadSetName below the
	stdin/stdout/stderr reassignment to fix a fd problem with running
	nsd on Irix in "installed" or "daemon" mode that would prevent the
	server from starting up.  Sigh.
	(Ns_Main): Took out little note about -k|-K being deprecated.

2000-10-13  Kris Rehberg  <Kriston@AOL.NET> 

	* nsd/nsmain.c (Ns_Main): gid of the specified user is set even if
	it's not specified.
	(UsageError): -K and -k give a "deprecated" warning.
	(Ns_Main): -f gives a "deprecated" warning.

	* nsd/binder.c (PreBind): Didn't really tell us if it was
	successful at pre-binding.  Helpful to know if you're wondering
	what happened to that port you wanted to pre-bind.
	(Binder): backlog variables (2) initialized to nsconf.backlog.

	* nssock/sock.cpp, nsd/return.c: Made an attempt at standardizing
	the error codes and error page content.
	
2000-10-13  Jim Davidson
	
	* sproc.cpp: Fixed Wakeup() error message and update child's
	sproc pid after fork.

	* nsd/random.c: Put back log message when generating seeds.

	* nsd/nsconf.c: Fixed memory overwrite bug in stats and increased
	the default buffer value.

	* nsd/keepalive.c: Fixed array overwrite with maxkeep=0 bug.
	Contributed by ArsDigita.
	
	* nsd/tclkeylist.c: A more modern version added that's compatible
	with Tcl 8.3.2 (nsd8x).

	* nsd/stamp.c: Forces the build date reported by AOLserver to be
	absolutely the last possible moment before the link step happens,
	not just the last time nsmain.c was built.

	* nsd/binder.c: New option "-b" to prebind ports as root (but not
	listen on them).  This allows AOLserver to start up on MacOS X on
	ports 80 and 443 like this:  "nsd ..blah.. -b 10.0.0.1:80".

	* nssock/: Building nsssl is much less of a debacle and doesn't
	rebuild itself three times anymore.

	* various: fork() calls in all kinds of code were changed to use
	ns_fork.  ns_fork now lives in the thread library (thread/
	directory).

	* tcl8.3.2/generic/tclIO.c: Fixed memory leak that leaks around
	112 bytes each time a file descriptor is closed.  Thanks to Rob
	Mayoff for finding this and proposing a solution.

2000-10-09  Kris Rehberg  <Kriston@AOL.NET> 

	* sample-config.tcl: nsd.tcl is now sample-config.tcl so that
	existing users can look at the new reference configuration.

	* nsd/nsmain.c (Ns_InfoNameOfExecutable): new function just
	returns nsconf.nsd which is determined elsewhere.

	* nscp/nscp.c (Login): Tells you lots of harmless info about the
	machine once you log in.  Also, nscp does not run unless
	configuration is explicitly set

	* nsd/nsmain.c: Some typo or other.

	* General: Files were re-arranged and some were renamed.  The
	sample SSL key/cert files are sample-certfile, sample-keyfile.
	The nsd.tcl is now called sample-config.tcl (so that existing
	installations always have a current reference copy of the
	configuration).  Other minor changes.

	* tests/:  Moved from its hiding place in scripts/test.  Install
	them with "gmake install-tests".

	* nsd/tclxkeylist.c, nsd/tclcmds.c, nsd/Makefile: Re-added TclX
	keyl* commands that were in AOLserver 2.x.  These are inferior to
	ns_set which is why they were left out in the first place.

2000-10-04  Jim Davidson

	* binder.c: Set close-on-exec on received fd from binder.
	
	* sock.c: Removed cthread errno API's, Mac OS X now has
	thread-safe errno.

	* nsd/nsmain.c, include/Makefile.global, nsd/nsthread.h,
	nspd/main.c, nsunix/nsunix.c, nsvhr/nsvhr.c, thread/Makefile,
	thread/osthread, thread/reentrant.c, thread/signal.c: Updates for
	Mac OS X.  Use MACOSX instead of APPLE; use HAVE_BSDSETPGRP,
	HAVE_CMMSG, use pthreads instead of cthreads.
	
	* nssock/sock.c: Removed setting bufsize to uninitialized value on
	ssl.

	* include/ns.h: Removed Ns_CacheTimedGetValue which was an odd
	interface not used anywhere.
	
	* nsd/nsd.h: Update to version 3.11.
	
	* tcl/namespace.tcl: Added namespace export to init script.
	
	* thread/pthread.cpp: Stopped using pthread_once as it appears to
	require a lock.
	
2000-10-04  Kris Rehberg  <Kriston@AOL.NET> 

	* win32/nsssl/nsssl.dsp: nsssl project for win32.

	* win32/aolserver.dsw: main installation keeps DLL's as DLL's now.

	* scripts/nsd.tcl: shared library extension is now
	platform-dependent

	* nssock/ssltcl.c: Changed name of ReadFile adn WriteFile to avoid
	Win32 naming conflicts.
	
2000-09-28  Kris Rehberg  <Kriston@AOL.NET> 

	* scripts/tests/nstelemetry.adp: added "Expires: now" header to
	ensure it gets run each time it's visitted.

	* nsd/serv.c (NsConnArgProc): Race condition when threads exit
	while [ns_info threads] is run; arg can be NULL.  Seen mostly by
	people who regularly visit nstelemetry.adp.
	(AppendConn): same thing but with connPtr.  This may be a losing
	battle.  It appears to work on a busy Irix server, so I'm
	declaring victory for now.

2000-09-28  Jim Davidson
	
	* nssock/sock.c: Fixed bufferred read code in SockRead, resulting
	in a big performance boost and system load reduction.  Special
	thanks to Zachary Girouard.

2000-09-05  Kris Rehberg  <Kriston@AOL.NET> 

	*** AOLserver 3.1 Released *** 

2000-09-05  (various: Jerry Asher, Jim Davidson, "Dossy," Curtis Galloway,
	Scott S. Goodwin, Rob Mayoff, Kris Rehberg  <Kriston@AOL.NET>)

	* thread/win32.cpp: Sets thread stack size as on other platforms.

	* thread/thread.c: NULL out thread arg at exit to avoid
	Ns_ThreadEnum checking arg info for possibly deallocated context
	as seen in ns_info threads.  Also, moved read of firstPtr in
	Ns_ThreadEnum inside lock.  Added Ns_ThreadCreate2 in thread.c
	needed for upgrade to Tcl 8.3.1 in tcl8x.c
	
	* thread/pthread.cpp: ETIME bug work around not causes wakeup in
	Ns_CondWait and Ns_CondTimeWait instead of waiting again.  This is
	more conservative and should avoid problems some have had with
	threads missing wakeup.

	* thread/pool.c: Added a simple 1-byte range check to -z
	allocator.

	* thread/Makefile: Added dependency for osthread.o to Makefile.

	* tcl/namespace.tcl: Added namespace export to init script.

	* nsvhr/nsvhr.c: Switched to Ns_WriteConn in TimedSockDump to
	ensure all data was sent.

	* nssock(nsssl): SSL module includes a fake 40-bit/512-bit
	export-grade SSL keyfile.pem and certfile.pem for immediate use on
	installation.  Adjusted for use with BSAFE 4 and 5.

	* nspd: Library now installed to binary distribution.

	* nsd/tclsock.c: Fixed crash bug in error message in ns_socknread.

	* nsd/tclcmds.c: Added ns_adp_registertag command as documented.
	
	* nsd/serv.c: Added missing break for unauthorized case in
	ConnRun.

	* nsd/random.c: Fixed deadlock between Ns_DRand/Ns_GenSeeds.
	
	* nsd/nsmain.c: Fixed some message formatting problems.

	* nsd/mimetypes.c: Added .png type, "image/png".
	
	* nsd/dbtcl.c: Removed unused variables in GetCsvCmd.  Use a
	dstring to create the column list instead of incrementally setting
	the output variable with Tcl_SetVar.  This was necessary to avoid
	conflicting definitions of the needed TCL_ flags between 7.6 and
	8.x.

	* nsd/dbinit.c: MOdified current per-thread handle count to use a
	single TLS slot instead of a slot per pool.
	
	* nsd/tclinit.c,adp.c,conn.c: The use of thread-local storage
	(Tls) is now self-initializing in the conn, ADP, Tcl, etc.  This
	allows ns_conn commands to be used outside a connection thread as
	well as other uses of Tls where it may not be ready for use.

	* nscp/nscp.c: Password non-echo code confuses Win32 and some free
	Unix telnet clients so it has been disabled by default for now,
	though it can be enabled by setting "echopassword" in the nscp
	module section of nsd.tcl.
	
2000-08-21  Kris Rehberg  <Kriston@AOL.NET> 

	* nscp/nscp.c: Makes some attempt to recognize and handle telnet
	IAC codes like CTRL-C and CTRL-D to force a logout.  This
	implementation of the telnet protocol is dirt-cheap, so only
	standard Unix telnet is supported.  On Win32, IAC handling is
	completely disabled because the client is too chatty with its IAC
	codes.

2000-08-20  Kris Rehberg  <Kriston@AOL.NET> 

	* nsftp, nspostgres, nssolid, nssybpd moved to $TOP level.

2000-08-17  Jim Davidson

	* nsd/dbtcl: Removed unused variables in GetCsvCmd.
	
	* nsd/adp.c: Fixed bug of not truncating output buffer when an
	error was thrown during an ns_adp_parse.  Fix suggested by Rob
	Mayoff.

	* tcl7.6 and tcl8.2.3: Switched to blocking Tcl_WaitPid to avoid
	zombies as suggested by Rob Mayoff.
	
	* thread: NULL out thread arg at exit to avoid Ns_ThreadEnum
	checking arg info for possibly deallocated context as seen in
	ns_info threads.  Also, moved read of firstPtr in Ns_ThreadEnum
	inside lock.
	
2000-08-17  Kris Rehberg  <Kriston@AOL.NET> 
	
	* nssock/sock.c (SockThread): warning sent to log when Server Busy
	is returned.

	* All the Makefiles should be in line with each other.  Typing
	"gmake", "gmake install" and "gmake clean" should work in any
	directory.  NSHOME is paid attention to by all Makefiles.

	* nsd: Ns_Log and Ns_Fatal statements are hopefully more
	standardized and more useful to admins and developers.

	* Irix now builds as -o32 using the native compiler by default.
	See Makefile.global on how to change.

2000-08-15  Kris Rehberg  <Kriston@AOL.NET> 

	* include/Makefile.global (INSTLOG): should have pointed to
	$(INST)/lib, not $(INST)/modules/lib.

	* Makefile: nsunix resurrected.  All modules are built.  If a
	module is missing a library, it is not built, but it won't stop
	the AOLserver build process (no error is thrown).  The build will
	continue with the next module.
	
	* nsftp: guesses if you have TCP_WRAPPERS available.

	* nsext: Ten guesses why $(NSHOME)/include/nsextmsg.h was
	duplicated here.

	* nssybpd: Hopefully, the log statements will be easier to
	understand by both admins and developers.  It's still messy since
	it uses syslog.  Makefile redone to use standard AOLserver rules.
	RPATH is used a little more intelligently.  Removed files that had
	no business living there.
	
	* include/Makefile.global: Took stab at RPATH support on Solaris
	to perhaps remove the need for LD_LIBRARY_PATH on an
	intelligenly-administered system.  New rule for libnspd.a.
	
	
2000-08-14  Kris Rehberg  <Kriston@AOL.NET> 

	* Makefile: nsvhr has been resurrected and enjoys our full
	support.

	* nsexample/Makefile: The include at the bottom wasn't using
	$(NSHOME).

2000-08-14  Jim Davidson

	* Tcl 8.x library upgraded to tcl8.3.2.

	* thread/pool.c: A spiffy range-checker added to the Zippy (-z)
	memory allocator.

2000-08-11  Kris Rehberg  <Kriston@AOL.NET> 

	* nsvhr/nsvhr.c: Always add "Connection: close" to the request
	line to satisfy HTTP 1.1 RFC -- this would break MSIE in HTTP 1.1
	mode.  HTTP_EOL of "\r\n" used on all request lines for stupid web
	servers on the other end.  Protocol "tcp" added as synonym of
	"http" for old-time Unix heads.  Lots of folks lended a hand on
	this one -- Satyam Priyadarshy, Jerry Asher, Kriston Rehberg, and
	special thanks to Wanda G. at AOL for adding a CNAME in DNS so
	quickly.

2000-08-09  Kris Rehberg  <Kriston@AOL.NET> 

	* nsd/serv.c: A whole lot less chatty about conns starting and
	exiting.  If you want to see them, turn on the Debug flag.

	* doc/*: lots of updates.  Title page extremely simplified.  SSL
	docs updated.  Release notes updated.  NSV docs corrected (thanks
	to Todd Levy.

2000-08-09  Jim Davidson
	
	* tcl7.6/generic/tclFHandle.c: Removed needed fileTable which
	could result in crashes when fd's where reused quickly [fixes a
	rare multiple-exec crashing bug in nsd76 --kris].

	* thread/tcl8x.c: Added a wrapper startup for Tcl_CreateThread for
	the benefit of Win32.

	* nsd/log.c: Removed severityRank array.

	* nsd/tclmisc.c: Fixed bug with ns_info pid. [I can't code --kris]
	
	* nsd: keepalive.c,nsmain.c,sched.c,serv.c: Re-ordered shutdowns
	to ensure connection threads are stopped before other shutdowns
	begin (e.g., sched, sockcallback).
	
	* tcl8.3.1 replaces tcl8.3.0.  README.AOLSERVER added to tcl8.3.1
	directory.  Original copies of changed are named *.orig.

	* include/Makefile.global: Build environment now uses gcc -shared
	-nostartfiles as the default LDSO.

	* nsthread/thread.c: Added Ns_ThreadCreate2 with extra flags
	argument used by Tcl_CreateThread to create a detached thread.
	
2000-08-06  Scott S. Goodwin

	* nsd/log.c: Segmentation fault was occuring when writing to the
	log file because file pointer was being assigned to incorrectly -
	it wasn't NULL and it wasn't a valid address within processes
	memory. Fixed.

2000-08-06  Scott S. Goodwin

	* nssock: You can now compile with BSAFE versions 4 and 5. You'll
	need to specify the path to your BSAFE libaries and the BSAFE
	version in the nssock/Makefile before compiling. If you don't have
	BSAFE and want to compile without SSL at all, edit the toplevel
	Makefile and take out all the "SSL=1" text. The files changed were
	nssock/Makefile and nssock/t_stdlib.c.

2000-08-02  Kris Rehberg  <Kriston@AOL.NET> 

	* Build process is a little more rule-oriented.  The cleaning
	rules "distclean" and "clobber" were removed.  The Tcl libraries
	are always distcleaned when "gmake clean" is invoked.  Rules that
	can be used as dependencies were made for libnsthread and the Tcl
	libraries -- their names are "libnsthread," "libtcl76," and
	"libtcl8x," respectively.  PREFIX is now used as the installation
	directory (along with INST), so the more familiar "gmake install
	PREFIX=/usr/local/aolserver" will work.  Additionally, gmaking in
	a subdirectory with dependencies now works.
	
	* nsd/log.c: The sourge of modlog has been removed.  All code
	included with AOLserver that used Ns_ModLog now doesn't.  Many log
	statements are now hopefully more standardized.  This will be a
	continuing improvement over the next several updates.  I would
	like to use gcc's __FUNCTION__ macro but it doesn't work on native
	compilers, but we may start using __LINE__ and __FILE__ instead or
	replace Ns_Log with a smart macro that takes care of all this
	stuff for us.

	* nsd/tclmisc.c (NsTclInfoCmd): ns_info pid added to return the
	process id.

2000-08-01  Kris Rehberg  <Kriston@AOL.NET> 

	* nsd/adp.c (Ns_AdpRequest): The enableexpire option was putting
	an Expires header even if it already existed.

	* nsd/return.c (Ns_ConnReturnNotice): Yikes, /face should have
	been /font.  No more fonts, colors, etc, on default notice pages.

	* nsd/tclsock.c (NsTclSockOpenCmd): Removed spurious Ns_Log Notice
	from ns_sockopen.

	* tcl/form.tcl (ns_getform): MSIE presents the wrong stuff to the
	server when a multipart/formdata POST is redirected.  Workaround
	contributed by Joseph Bank.

	* tcl/fastpath.tcl (_ns_dirlist): base href removed -- links are
	now fully-qualified.

	* Makefile (install): include and lib dirs are now included in
	binary distribution.

	* tcl/http.tcl (_ns_http_gets): \n replaced by \r in all but
	_ns_http_gets so that arbitrary headers get set correctly.

	* tcl7.6/generic/tclPosixStr.c (Tcl_SignalMsg): Patch to Tcl 7.6
	for Red Hat on SPARC architectures.  Contributed by Mike Chan.

2000-07-13  Kris Rehberg  <Kriston@AOL.NET> 

	* scripts/nsd.tcl: nssslmodule names the nsssl/nsssle binary's
	filename.  nscp_port tells nscp what port to listen.

	* nssock: nssock.c renamed sock.c, SSL support has been merged
	back with nssock so that both nsssl and nssock use identical
	socket code.
	
	* nsssl2: directory removed; nsssl is in the nssock directory now.

2000-05-09  Kris Rehberg  <Kriston@AOL.NET> 

	* Re-added doc directory which has had the online docs removed.

2000-05-02  Kris Rehberg  <Kriston@AOL.NET> 

	* Makefile, include/Makefile.global, include/Makefile.module,
	nsexample/Makefile: Now uses NSHOME variable to locate AOLserver.
	NSHOME is automatically figured out in the top-level Makefile and
	all the lower Makefiles still use relative directory paths.  The
	intention of NSHOME is for modules that do NOT live in the
	AOLserver source directory tree.  The nsexample/Makefile explains
	how this works.

	* nsftp module added.  Contributed by Eric O'Laughlen.

2000-04-12  Kris Rehberg  <Kriston@AOL.NET> 

	*** AOLserver 3.0 FINAL Released ***