There are no available options for this view.

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.376.2.1 - (download) (annotate)
Tue Jun 27 19:24:56 2006 UTC (3 years, 7 months ago) by dossy
Branch: aolserver_v45_bp
CVS Tags: aolserver_v45_r0
Changes since 1.376: +4 -0 lines
added release stamp to ChangeLog
    1 2006-06-27  Dossy Shiobara <dossy@panoptic.com>
    2 
    3 	*** AOLserver 4.5.0 RELEASED ***
    4 
    5 2006-06-27  Jim Davidson <jgdavidson@ool.com>
    6 
    7 	* Makefile:
    8 	* util/install.sh (new file): Restored pre-4.5 Unix install
    9 	script installed in bin/ directory again.
   10 
   11 	* include/ns.mak.in: Restored various pre-4.5 Unix install
   12 	variables.
   13 
   14 	* nsd/adpeval.c: Removed some dead code.
   15 
   16 
   17 2006-06-25  Jim Davidson <jgdavidson@ool.com>
   18 
   19 	* RELEASE (new file): Release notes.
   20 
   21 	* include/ns.h: Update for version 4.5 final.
   22 
   23 	* nsd/adpcmds.c:
   24 	* nsd/tclcmds.c: Added ns_adp_compress command present in
   25 	version 4.0.x.
   26 
   27 	* nsd/compress.c: Added Ns_Compress and Ns_CompressGzip
   28 	routines present in version 4.0.x
   29 
   30 	* nsd/driver.c: Fixed bug with pre-HTTP/1.0 request parsing.
   31 
   32 	* tcl/sendmail.tcl: Updated with fixes in 4.0.x from
   33 	atp@piskorski.com.
   34 
   35 	* util/nsinstall.tcl: Updated to support installing from a
   36 	lndir-created symbolic-link tree build directory and fixed
   37 	bug logging file modes of installed files.
   38 
   39 	* nsproxy/ns_proxy.n:
   40 	* nsproxy/nsproxylib.c: Added the "send", "wait", and "recv"
   41 	options to the ns_proxy command to support async requests.
   42 	Also, updated the extended error response info.
   43 
   44 	* doc/man.macros (deleted)
   45 	* include/man.macros (new file): Moved man pages include
   46 	file to the include directory where it's installed for use
   47 	by extension man pages.
   48 
   49 	* doc/Ns_ConnReturnStatus.3: Added details on the
   50 	Ns_RegisterReturn(3) routine.
   51 
   52 
   53 2006-06-22  Nathan Folkman <nathan.folkman@gmail.com>
   54 
   55         * nsd/adprequest.c: Fixed bug preventing ns_adp_stream 
   56         from working correctly due to NsAdpReset() being called 
   57         when it should not have been.
   58 
   59 
   60 2006-06-19  Jim Davidson <jgdavidson@aol.com>
   61 
   62 	* nsd/adprequest.c:
   63 	* nsd/adpeval.c:
   64 	* nsd/adpcmds.c: Fixes for bug #1389389 where calls to ADP
   65 	outside a normal ADP request (e.g., within an ns_register_proc
   66 	callback) caused the connection to close.
   67 
   68 	* nsd/adpparse.c: Based on a patch from Alastair Young,
   69 	restored the AOLserver 3.x ADP parsing order where registered
   70 	tags, <% ... %> scripts, and <script> ... </script> tags
   71 	all have the same precedence.  Also, fixed the parser to
   72 	handle nested sequences, e.g.:
   73 
   74 		 <% ns_adp_puts [ns_adp_eval {<% ... %>} %>
   75 
   76 	
   77 2006-06-02  Jim Davidson <jgdavidson@aol.com>
   78 
   79 	* configure:
   80 	* configure.in: Added check for Darwin (OS/X) to disable
   81 	detection of poll which appears broken.  Result is select
   82 	is used instead.
   83 
   84 	* nsd/driver.c: Fixed spurious "recv failed" messages when
   85 	clients dropped which should only have shown up when the
   86 	"debug" flag was set for a comm driver.
   87 
   88 	* nsd/tclinit.c:
   89 	* nsd/tclloop.c: Minor edits to silence compiler warnings.
   90 
   91 
   92 2006-05-01  Zoran Vasiljevic <zv@archiware.com>
   93 
   94 	* nsproxy/nsproxylib.c: CloseProxy() did not set "once" after
   95 	creating the cleanup thread, resulting in many cleanup threads
   96 	(needlessly) created.
   97 
   98 2006-04-28  Jim Davidson <jgdavidson@aol.com>
   99 
  100 	* nsd/adpcmds.c:
  101 	* nsd/adprequest.c: Fixed crash bug with NsAdpAppend being
  102 	called without an active ADP execution frame.
  103 
  104 	* doc/Makefile:
  105 	* util/nsinstall-man.sh:  Makefile now installs man.macros
  106 	into the AOLserver include/ directory.  The install script
  107 	will search there and other common locations to support
  108 	installing man pages located outside the doc/ directory.
  109 
  110 
  111 2006-04-19  Nathan Folkman <nathan.folkman@gmail.com>
  112 
  113         * include/ns.mak.in: Fixed to better support building 64-bit
  114         on Mac OS X. Assuming Tcl is built with 64-bit extensions
  115         enabled, it is no longer necessary to explicitly set CC.
  116 
  117         * nszlib/Makefile: Added optional ZLIB environment variable
  118         to allow user to define location of libz. Default is /usr/lib.
  119 
  120 2006-04-19  Jim Davidson <jgdavidson@aol.com>
  121 
  122 	* configure:
  123 	* configure.in: Removed check for zlib now loadable by
  124 	nszlib module.
  125 
  126 	* doc/Ns_Conn.3:
  127 	* doc/Ns_ConnClose.3 (new file):
  128 	* doc/Ns_ConnContent.3:
  129 	* doc/Ns_ConnCopy.3:
  130 	* doc/Ns_ConnDriver.3:
  131 	* doc/Ns_ConnFlush.3 (new file):
  132 	* doc/Ns_ConnHeaders.3 (removed):
  133 	* doc/Ns_ConnQuery.3:
  134 	* doc/Ns_ConnQueueHeaders.3 (new file):
  135 	* doc/Ns_ConnRead.3:
  136 	* doc/Ns_ConnRedirect.3 (new file):
  137 	* doc/Ns_ConnReturn.3:
  138 	* doc/Ns_ConnReturnData.3 (new file):
  139 	* doc/Ns_ConnReturnFile.3 (new file):
  140 	* doc/Ns_ConnReturnOpen.3 (new file):
  141 	* doc/Ns_ConnReturnStatus.3 (new file):
  142 	* doc/Ns_ConnSend.3:
  143 	* doc/Ns_ConnSetHeaders.3 (new file):
  144 	* doc/Ns_ConnStatus.3 (new file):
  145 	* doc/Ns_ConnType.3 (new file):
  146 	* doc/Ns_ConnWrite.3 (removed):
  147 	* doc/Ns_Gzip.3 (new file):
  148 	* doc/Ns_Info.3:
  149 	* doc/Ns_Pathname.3:  Update various man pages.
  150 
  151 	* include/ns.h: Added Ns_Gzip, Ns_SetGzipProc, and Ns_BinPath.
  152 
  153 	* nsd/compress.c: Changed from Ns_Compress to Ns_Gzip and
  154 	moved code to new nszlib module.
  155 
  156 	* nsd/connio.c: Updated to call Ns_Gzip, added Ns_ConnFlushDirect,
  157 	and fixed bug reading final line in Ns_ConnReadLine.
  158 
  159 	* nsd/fastpath.c: Fixed bug with mapped content.
  160 
  161 	* nsd/modload.c: Removed legacy pre-10.4 OS/X module loading
  162 	code as dlopen, etc. is now supported.
  163 
  164 	* nsd/pathname.c: Added Ns_BinPath.
  165 
  166 	* nsd/return.c: Now uses Ns_ConnFlushDirect in ReturnData
  167 	and changed Ns_ConnReturnHtml to call Ns_ConnReturnCharData
  168 	to ensure text is encoded as needed.
  169 
  170 	* nproxy/Makefile (new file):
  171 	* nsproxy/nsproxy.c (new file):
  172 	* nsproxy/nsproxy.h (new file):
  173 	* nsproxy/nsproxylib.c (new file):
  174 	* nsproxy/nsproxymod.c (new file):  New AOLserver/Tcl
  175 	pipe-based proxy support.
  176 
  177 	* nszlib/ChangeLog (new file):
  178 	* nszlib/Makefile (new file):
  179 	* nszlib/README (new file):
  180 	* nszlib/example.tcl (new file):
  181 	* nszlib/ns_zlib.n (new file):
  182 	* nszlib/nszlib.c (new file):
  183 	* nszlib/nszlib.h (new file):  New zlib extension for
  184 	AOLserver 4.5.  Provides both the "ns_zlib" command and
  185 	enables the Ns_Gzip routine.  Based on work by Vlad Seryakov
  186 	<vlad@crystalballinc.com>.
  187 
  188 
  189 2006-04-14  Nathan Folkman <nathan.folkman@gmail.com>
  190 
  191         * nsthread/reentrant.c: Updated ns_inet_ntoa() to be 64-bit safe.
  192 
  193 2006-04-13  Jim Davidson <jgdavidson@aol.com>
  194 
  195 	* include/Makefile.global:
  196 	* include/Makefile.module: Backwards compatible makefiles
  197 	which map variables and include the new ns.mak.
  198 
  199 	* Makefile:  Added install-tcl, install-skel, install-util,
  200 	install-bins, and install-docs directives.
  201 
  202 	* configure:
  203 	* configure.in:  Uses CC var on OS/X which can be set for
  204 	64bit build.  Regenerated configure from configure.in
  205 
  206 	* nscgi/nscgi.c: Removed minor memory leak when no CGI
  207 	mappings are present.
  208 
  209 	* nsd/Makefile: 
  210 	* nsd/tclloop.c: Added new ns_for, ns_foreach, ns_while,
  211 	and ns_loop_ctl commands to support monitored Tcl loop
  212 	structures.
  213 
  214 	* nsd/adpparse.c: Clarified difference between script, proc,
  215 	and adp registered tags.
  216 
  217 	* nsd/conn.c: Added optional arg to ns_conn status to set
  218 	result status if present.
  219 
  220 	* nsd/connio.c: Switch to memchr to avoid running off the
  221 	end of mmap'ed content.
  222 
  223 	* nsd/driver.c:
  224 	* nsd/queue.c: Moved free of various conn structures to
  225 	driver where they were allocated to avoid illusion of driver
  226 	constantly leaking memory freed in conn threads.
  227 
  228 	* nsd/init.tcl: Init and interp dup code now makes better
  229 	use of ns_ictl.
  230 
  231 	* nsd/nsd.h:
  232 	* nsd/server.c: Added support for ns_ictl package and once
  233 	in the NsInterp struct.
  234 
  235 	* nsd/nsmain.c: Added call to Tcl_Finalize on exit.
  236 
  237 	* nsd/sockcallback.c: Switched to NsPoll from direct poll.
  238 
  239 	* nsd/tclcmds.c: Added ns_adp_registerscript, ns_for,
  240 	ns_foreach, and ns_while commands and removed the dummy
  241 	ns_init and ns_cleanup commands.
  242 
  243 	* nsd/tclinit.c: Updated trace execution order to be FIFO
  244 	and LIFO for init and cleanup callbacks and moved more of
  245 	the interp dup code to the bootstrap script. Also, added
  246 	the ns_ictl package and once commands.
  247 
  248 	* nsd/tclobj.c: Removed panic when compiling on 64bit
  249 	machines and simplified int to time conversion code.
  250 
  251 	* doc/Ns_Alloc.3:
  252 	* doc/Ns_Exec.3:
  253 	* doc/ns_addr.n
  254 	* doc/ns_at.n
  255 	* doc/ns_cache.n
  256 	* doc/ns_chan.n
  257 	* doc/ns_init.n
  258 	* doc/ns_urlencode.n:  Updated some man pages (much more to do).
  259 
  260 	* doc/ns_adp.n:  Modified to be an ADP overview only with
  261 	commands in separate files.
  262 
  263 	* doc/ns_proc.n (removed):  Moved to ns_register_proc.n.
  264 
  265 	* doc/ns_crash.n (removed):  Not implemented.
  266 
  267 	* doc/Makefile: Uses new simple man page install independent
  268 	of section and added install of index.adp html browser.
  269 
  270 	* doc/index.adp (new file):
  271 	* doc/ns_adp_ctl.n (new file):
  272 	* doc/ns_adp_debug.n (new file):
  273 	* doc/ns_adp_exception.n (new file):
  274 	* doc/ns_adp_include.n (new file):
  275 	* doc/ns_adp_mimetype.n (new file):
  276 	* doc/ns_adp_puts.n (new file):
  277 	* doc/ns_adp_registertag.n (new file):
  278 	* doc/ns_adp_stats.n (new file):
  279 	* doc/ns_ictl.n (new file):
  280 	* doc/ns_lctl.n (new file):
  281 	* doc/ns_register_proc.n (new file):  New man pages.
  282 
  283 	* include/ns.mak.in: Simplified man page install and added
  284 	support to convert man pages to html.
  285 
  286 	* util/nsinstall-man.sh: Added -h option to generate html
  287 	pages with groff instead of man pages and removed the -e,
  288 	-s, and -z options not used.
  289 
  290 
  291 2005-10-25  Nathan Folkman <shmooved@aol.com>
  292 
  293         * tcl/return.tcl (new file): Implements ns_returnmoved
  294         command. More information can be found here:
  295 
  296         http://panoptic.com/wiki/aolserver/Ns_returnmoved
  297 
  298 2005-10-24  Daniel P. Stasinski <mooooooo@avenues.org>
  299 
  300         * nsd/compress.c: Fixed gzip compression of ADP
  301         files.
  302 
  303 2005-10-09  Jim Davidson <jgdavidson@aol.com>
  304 
  305 	* nsd/init.c: Fixed bug with NsInitFd called before
  306 	NsInitLog.
  307 
  308 	* nsd/fd.c:
  309 	* nsd/nsmain.c: Moved code to increase open fd limit to
  310 	NsInitFd and
  311 
  312 	* nsd/sock.c: Added comments for NsPoll and renamed poll
  313 	emulation function to ns_poll.
  314 
  315 	* nsd/driver.c: Simplified code to reset a Conn after a
  316 	connection, simply zero'ing all fields except the I/O
  317 	buffers. This fixed a bug with recursionCount not being
  318 	reset.
  319 
  320 	* nsd/nsd.h: Fixed bug with large responses caused by
  321 	'sendwait' fields in Ns_Driver and Driver not being aligned
  322 	due to addition of 'fullname' field in Ns_Driver alone.
  323 
  324 
  325 2005-10-06  Dossy Shiobara <dossy@panoptic.com>
  326 
  327 	* nsd/: op.c (1.15), return.c (1.48), tclcmds.c (1.54), tclresp.c
  328 	  (1.20): Add ns_internalredirect Tcl command to make
  329 	  Ns_ConnRedirect available from Tcl.  Moved recursion detection
  330 	  into Ns_ConnRunRequest.  Closes SF RFE #1315460.
  331 
  332 2005-09-26  Nathan Folkman <shmooved@aol.com>
  333 
  334        * nsd/mimetypes.c: Updated with additional MIME types.
  335 
  336 
  337 2005-08-24  Nathan Folkman <shmooved@aol.com>
  338 
  339         * examples/config/README (new file):
  340         * examples/config/base.tcl (new file):
  341         * examples/config/nscp.tcl (new file):
  342         * examples/config/stats.tcl (new file):  Examples showing
  343         various configuration options for the core AOLserver,
  344         as well as other standard AOLserver modules. 
  345 
  346         * sample-config.tcl (removed): This file has been replaced
  347         by examples/config/base.tcl.
  348 
  349         * full-config.tcl (removed): This file is being replaced
  350         by smaller, more specific, configuration example files.
  351 
  352         * Makefile: Updated to install examples/config/base.tcl
  353         as the default configuration example.
  354 
  355         * README: Updated to reflect changes made to default
  356         configuration file.
  357  
  358 
  359 2005-08-23  Jim Davidson <jgdavidson@aol.com>
  360 
  361 	* include/ns.h:
  362 	* nsd/fastpath.c:
  363 	* nsd/nsd.h:
  364 	* nsd/server.c:
  365 	* nsd/tclcmds.c:
  366 	* nsd/tclrequest.c:  Applied patch from Stephen Deasey for
  367 	new ns_register_fastpath command.
  368 
  369 
  370 2005-08-23  Jim Davidson <jgdavidson@aol.com>
  371 
  372 	* include/ns.h:
  373 	* include/nsattributes.h (new file):
  374 	* include/nsthread.h:
  375 	* nsd/info.c:
  376 	* nsd/log.c:
  377 	* nsd/queue.c:
  378 	* nsd/tclfile.c:
  379 	* nsd/tclinit.c:
  380 	* nsd/tcljob.c:
  381 	* nsd/tclmisc.c:
  382 	* nsd/tclthread.c:
  383 	* nsd/tclvar.c:
  384 	* nsthread/thread.h:  Applied patches from Stephen Deasey
  385 	for better compile time error checking.
  386 
  387 	* nsd/driver.c:
  388 	* nsd/exec.c:  Fixed bugs found by new compile time checks.
  389 
  390 	* nsthread/error.c:  Silence compiler warning from new
  391 	compile time checks.
  392 
  393 
  394 2005-08-21  Jim Davidson <jgdavidson@aol.com>
  395 
  396 	Several updates to simplify maintenance of the build process.
  397 	Basically, the makefiles support both gmake on Unix and
  398 	nmake on Windows by including a platform-specific include/ns.mak
  399 	created by the nsconfig.tcl script.  See comments README
  400 	for instructions.
  401 
  402 	README:  Updated with new build instructions.
  403 
  404 	include/Makefile.global.in (removed):
  405 	include/Makefile.module.in (removed):
  406 	include/Makefile.build (removed):
  407 	include/ns.mak.in (new file):
  408 	include/ns-mak.inc (new file):  Unix and Windows templates
  409 	for include/ns.mak, replacing the previous include/Makefile.*
  410 	files.
  411 
  412 	nsconfig.tcl (new file):  Tcl configure script which calls
  413 	configure on Unix and creates include/ns.mak directly on
  414 	Windows.
  415 
  416 	util/nsinstall.sh (removed):
  417 	util/nsmakeall.tcl (new file):
  418 	util/nsinstall.tcl (new file):
  419 	util/nsremove.tcl (new file):  Tcl shell utility scripts
  420 	called by include/ns.mak.
  421 
  422 	ini2tcl.tcl (removed):
  423 	tcl2ini.tcl (removed):
  424 	util/ini2tcl.tcl (new file):
  425 	util/tcl2ini.tcl (new file):  Moved files from top level.
  426 
  427 	util/nsinstall-man.sh:  Updated to create directories as
  428 	needed (Unix only).
  429 
  430 	Makefile:
  431 	aclocal.m4:
  432 	configure.in:
  433 	configure:
  434 	doc/Makefile:
  435 	nscgi/Makefile:
  436 	nscgi/Makefile:
  437 	nscp/Makefile:
  438 	nsd/Makefile:
  439 	nsdb/Makefile:
  440 	nslog/Makefile:
  441 	nsperm/Makefile:
  442 	nssock/Makefile:
  443 	nsthread/Makefile:
  444 	nstclsh/Makefile:  Updated to build using include/ns.mak.
  445 
  446 	win32/ (removed):  Removed previous Windows build enviornment.
  447 
  448 	sample-config.tcl:  Updated to change module file extension
  449 	to .so on Windows to match Unix.
  450 
  451 	include/nsdb.h:
  452 	nsdb/db.h:
  453 	nsthread/thread.h:  Updated to export public functions on
  454 	Windows.
  455 
  456 
  457 2005-08-19  Nathan Folkman <shmooved@aol.com>
  458 
  459         * full-config.tcl (new file):  Currently just a copy
  460         of the original sample-config.tcl. Over time this file
  461         will contain all of the configurable options for 
  462         AOLserver along with detailed comments.
  463 
  464         * sample-config.tcl:  Stripped away as much as possible 
  465         in order to simplify the default configuration example.
  466         Also update to enable the Web statistics interface by
  467         default, as well as also enabling the control port. 
  468 
  469         You should be sure to update the default user names and 
  470         passwords for both the stats interface and control port 
  471         before installing in a production environment.
  472 
  473 
  474 2005-08-11  Jim Davidson <jgdavidson@aol.com>
  475 
  476 	* include/ns.h:
  477 	* nsd/conn.c:   Added Ns_ConnGet/SetGzipFlag API's.
  478 
  479 	* nsd/adpeval.c
  480 	* nsd/adprequest.c:
  481 	* nsd/nsd.h:
  482 	* nsd/server.c:  Added autoabort config/flag to raise adp
  483 	abort exception when a flush fails.
  484 
  485 	* nsd/tclresp.c:  Cleaned up error message on no conn.
  486 
  487 	* nstclsh/nstclsh.c:  Added call to fully initialize Tcl
  488 	shell.
  489 
  490 	* include/nsmodinit.c:
  491 	* nsd/nswin32.c:  Minor fixes for Win32.
  492 
  493 
  494 2005-08-09  Jim Davidson <jgdavidson@aol.com>
  495 
  496 	* nsd/adpeval.c: Updated to suppress multiple error log
  497 	messages in stricterror mode
  498 
  499 	* nsd/driver.c:
  500 	* nsd/nsd.h:
  501 	* nsd/request.c:
  502 	* nsd/return.c:  Updated to match response http version
  503 	with client version.
  504 
  505 	* nsd/init.tcl:
  506 	* nsd/tclcmds.c:  Removed ns_adp_include proc now in
  507 	tclcmds.c.
  508 
  509 
  510 2005-08-08  Jim Davidson <jgdavidson@aol.com>
  511 
  512 	* include/ns.h:
  513 	* nsd/conn.c:
  514 	* doc/Ns_ConnContent.3:  Incorporated patch from Fred Cox
  515 	to add the Ns_ConnContentOnDisk API.
  516 
  517 	* include/nsmodinit.c (new file):
  518 	* include/nslibinit.c (new file):
  519 	* include/Makefile.global.in:
  520 	* include/Makefile.module.in:  New stubs and makefile targets to
  521 	support building a library or module in a consistent way which
  522 	separates the library code installed as both a static archive and
  523 	dynamic lib from the library and/or module init calls.
  524 
  525 	* nscp/Makefile:
  526 	* nscp/nscp.c:
  527 	* nsdb/Makefile:
  528 	* nsdb/nsdb.c:
  529 	* nslog/Makefile:
  530 	* nslog/nslog.c
  531 	* nsperm/Makefile:
  532 	* nsperm/nsperm.c:
  533 	* nssock/Makefile:
  534 	* nssock/nssock.c:  Updated to use init stubs described above.
  535 
  536 	* include/ns.h
  537 	* include/nsthread.h
  538 	* nsthread/Makefile:
  539 	* nsthread/thread.c:
  540 	* nsthread/pthread.c:
  541 	* nsthread/winthread.c:
  542 	* nsthread/nsthreadtest.c:
  543 	* nsd/Makefile:
  544 	* nsd/init.c:
  545 	* nsd/nsmain.c:
  546 	* nsd/tclinit.c:  Added Ns_LibInit and NsThreads_LibInit which,
  547 	in addition to being called at dynamic library load time, are
  548 	now also called at the Ns_Main and Ns_TclInit entry points to
  549 	support initialization of static builds assuming code starts at
  550 	the two supported entry points.
  551 
  552 	* nscgi/Makefile
  553 	* nscgi/nscgi.c:  Updated to use new mod init stub and new
  554 	Ns_DevNull and Ns_ContentFd API's.
  555 
  556 	* nstclsh/:  New simple Tcl shell with AOLserver commands.
  557 
  558 	* examples/mynsd/:  Example of building a custom static linked
  559 	nsd binary.
  560 
  561 
  562 2005-08-04  Jim Davidson <jgdavidson@aol.com>
  563 
  564 	* doc/ns_adp.n: Updated docs, needs more work.
  565 
  566 	* nsd/nsd.h:
  567 	* nsd/adpeval.c:
  568 	* nsd/adpcmds.c:
  569 	* nsd/adprequest.c:  Updated the init/re-init approach for
  570 	adp options so they can be set before the first include.
  571 	Also, fixed AdpRun so it detects parse/compile safe and/or
  572 	singlescript options may have changed.
  573 
  574 
  575 2005-08-05  Nathan Folkman <shmooved@aol.com>
  576 
  577         * nsd/log.c:
  578         * nsd/nsconf.c:
  579         * nsd/nsd.h: Fixed bug where NsLogConf() procedure was
  580         not defined or being called during server initialization.
  581 
  582 
  583 2005-08-03  Jim Davidson <jgdavidson@aol.com>
  584 
  585 	* adpeval.c:  Moved frame management directly into AdpEval
  586 	with better comments to describe how Tcl errors and ADP
  587 	exceptions are treated.  Also, further tweaked the error
  588 	message format.
  589 
  590 	* adpparse.c
  591 	* adpcmds.c:
  592 	* adprequest.c
  593 	* nsd.h:
  594 	* server.c:  Moved remaining server-wide ADP flags to
  595 	interp-level which can be set/unset via ns_adp_ctl and added
  596 	"trimspace" option and config to trim leading whitespace
  597 	from output (helpful when generating xml).
  598 
  599 
  600 2005-08-02  Jim Davidson <jgdavidson@aol.com>
  601 
  602 	Some updates to get code to compile on Win32.  Unfortunately
  603 	there is still no simple way to export the build environment
  604 	so the project/workspace files in the win32/ directory will
  605 	still be a struggle to use.
  606 
  607 	* Makefile:
  608 	* install-sh: Updated to not overwrite existing index.adp.
  609 
  610 	* nsd/adpeval.c: Fixed bug checking result of Ns_CheckStack.
  611 
  612 	* nsd/nsd.h
  613 	* nsd/adpparse.c:
  614 	* nsd/adprequest.c:
  615 	* nsd/server.c: Separated adp server config and interp
  616 	option flags.
  617 
  618 	* nsd/connio.c: Ns_ConnSendFdEx disabled for Win32 (no
  619 	pread).
  620 
  621 	* nsd/queue.c:
  622 	* nsd/pools.c: Connection threads are now joined and don't
  623 	run detached.
  624 
  625 	* nsthread/thread.h:
  626 	* nsthread/thread.c:
  627 	* nsthreadd/winthread.c: Updates for Win32 including adding
  628 	NsGetStack (which, unfortunately does not actually get the
  629 	stack).
  630 
  631 
  632 2005-08-01  Jim Davidson <jgdavidson@aol.com>
  633 
  634 	Work to enhance ADP error handling and reporting.
  635 
  636         * nsd/adpcmds.c:
  637 	* nsd/nsd.h:
  638 	* nsd/server.c: Added strict, display, and detail error options
  639 	which can be set via server config and/or ns_adp_ctl.
  640 
  641 	Example (with defaults):
  642 
  643         ns_section "ns/server/server1/adp"
  644             ns_param stricterror false;  # Stop execution on error.
  645             ns_param detailerror true;	 # Include connection detail.
  646             ns_param displayerror false; # Return error message in page. 
  647 
  648 	* nsd/adpeval.c:  Support for error options above plus inhibit
  649 	cacheing of failed execution results (more work required
  650 	here).
  651 
  652 
  653 2005-08-01  Nathan Folkman <shmooved@aol.com>
  654 
  655         * nsd/adpeval.c:
  656         * nsd/nsd.h:
  657         * nsd/server.c: Added new configurable option which allows
  658         you to specify the max size (in characters) of the ADP
  659         trace output. 
  660 
  661         Example (with defaults):
  662 
  663         ns_section "ns/server/server1/adp"
  664             ns_param trace false;        # Enable text/script debug info.
  665             ns_param tracesize 40;       # Max chars of each chunk to log.
  666 
  667 
  668 2005-08-01  Jim Davidson <jgdavidson@aol.com>
  669 
  670 	Quite a few changes, mostly to enable all commands to run
  671 	outside a virtual server as a step toward enabling more
  672 	effective unit testing of individual compontents.  Also,
  673 	updated ADP to enable much more detailed error messages on
  674 	execeptions which includes line numbers, include file traces,
  675 	and connection details.
  676 
  677 	* nsd/Makefile:  Added ctags target.
  678 
  679 	* nsd/adpeval.c:
  680 	* nsd/adprequest.c:  New ADP frame management approach for
  681 	enhanced error messages (file trace and connection details)
  682 	and relocation of init/flush calls to top level frame.
  683 
  684 	* nsd/adpcmds.c:  Added ns_adp_ctl "channel" option and updated
  685 	code for new ADP frame management.
  686 
  687 	* nsd/adpparse.c:  Updated parser to save line number info
  688 	for possible error reporting.
  689 
  690 	* nsd/conn.c:
  691 	* nsd/tclresp.c: Standard usage of NsTclGetConn to verify
  692 	and active connection and cleanup of ns_startcontent command.
  693 
  694 	* nsd/auth.c:
  695 	* nsd/encoding.c:
  696 	* nsd/info.c:
  697 	* nsd/tclrequest.c:
  698 	* nsd/tclset.c:  Use of NsTclGetServer call to verify when
  699 	a server is required for a command.
  700 
  701 	* nsd/config.c:
  702 	* nsd/dns.c:
  703 	* nsd/log.c:
  704 	* nsd/nsconf.c:
  705 	* nsd/nsconf.h:
  706 	* nsd/nsd.h:
  707 	* nsd/pidfile.c: Moved components of nsconf struct to
  708 	cooresponding private code and added NsParam functions to
  709 	simplify core parameter config.
  710 
  711 	* nsd/driver.c: Added debug config option which will enable
  712 	logging of unusual I/O or protocol errors.
  713 
  714 	* nsd/fastpath.c: Minor edits.
  715 
  716 	* nsd/fd.c:
  717 	* nsd/nsmain.c: Moved core fd init code from Ns_Main to
  718 	NsInitFd.
  719 
  720 	* nsd/init.c: Re-ordered inits to ensure fds and log are
  721 	initialized first.
  722 
  723 	* nsd/queue.c: Disabled ns_server "keepalive" option as the
  724 	cooresponding variable was no longer being maintained.
  725 
  726 	* nsd/return.c: Cleaned up and isolated the complex keep-alive
  727 	check and enabled configurable HTTP response version (default
  728 	1.1).
  729 
  730 	* nsd/server.c: Enabled a global, psuedo-server, to support
  731 	all Tcl commands outside the context of a virtual server.
  732 
  733 	* nsd/task.c:
  734 	* nsd/tclcache.c:
  735 	* nsd/tclfile.c:
  736 	* nsd/tclimg.c: Minor edits to silence the compiler.
  737 
  738 	* nsd/tclcmds.c:  Made all commands available outside a
  739 	virtual server and moved ns_adp_include proc creation to
  740 	C.
  741 
  742 	* nsd/tclinit.c:  Fixed async cancel support which is really
  743 	the ability to send a thread a signal to cancel Tcl script
  744 	eval in the currently active interp, if any. Also, updated
  745 	code to support running outside a virtual server.
  746 
  747 	* nsd/tcljob.c:
  748 	* nsd/tclshare.c:
  749 	* nsd/tclsock.c:
  750 	* nsd/tclthread.c:  Updated to work outside a virtual server.
  751 
  752 	* nscgi/nscgi.c
  753 	* nsd/tclhttp.c:  Switched to strtol fromm atoi which evidently
  754 	isnt always thread safe.
  755 
  756 
  757 2005-07-22  Jim Davidson <jgdavidson@aol.com>
  758 
  759 	* doc/Makefile: Fix install target bugs.
  760 
  761 2005-07-21  Nathan Folkman <shmooved@aol.com>
  762 
  763         * Makefile:
  764         * index.adp: Created new default index.adp page which displays
  765         a number of AOLserver configuration settings. Updated the 
  766         Makefile to install in the default page root. 
  767 
  768         * nsd/dns.c: Fixed infinite recursion bug in GetAddr().
  769 
  770 2005-07-20  Nathan Folkman <shmooved@aol.com>
  771 
  772         * nsd/nsconf.c:
  773         * nsd/nsconf.h: Added new logdebug parameter for consistency.
  774         Supported parameters are: (debug or logdebug), logdev, 
  775         and lognotice. Updated dnscachemaxentries to use new
  776         DNS_MAX_ENTRIES constant.
  777 
  778 2005-07-19  Nathan Folkman <shmooved@aol.com>
  779 
  780         * nsd/log.c: Fixed bug where log level "Dev" wasn't supported.
  781 
  782 2005-07-18  Jim Davidson <jgdavidson@aol.com>
  783 
  784 	* Makefile:
  785 	* doc/Makefile:
  786 	* doc/mkLinks (removed):
  787 	* doc/install-doc (removed):
  788 	* doc/nsinstall-man-sh: New approach to installing man
  789 	pages.
  790 
  791 	* doc/Ns_ConnContent.3:
  792 	* doc/Ns_ConnQuery.3:
  793 	* doc/Ns_Conn.3: Broke out some Ns_Conn related man pages.
  794 
  795 	* doc/Ns_Config.3:
  796 	* doc/Ns_Exec.3: Cleaned out some trailing linefeeds.
  797 
  798 	* nsd/Makefile:
  799 	* nsd/tclcache.c:
  800 	* nsd/tclcmds.c:
  801 	* nsd/tclthread.c: New ns_cache command based on ideas from
  802 	nscache module and made ns_thread an object command.
  803 
  804 	* include/ns.h
  805 	* nsd/conn.c:
  806 	* nsd/connio.c:
  807 	* nsd/driver.c:
  808 	* nsd/fastpath.c
  809 	* nsd/fd.c
  810 	* nsd/form.c:
  811 	* nsd/nsd.h
  812 	* nsd/return.c: Finished up support for temp-file based
  813 	content, allowing access via Ns_ConnContent or Ns_ConnContentFd.
  814 	Also, added new Ns_ConnFile routines to access uploaded
  815 	files and Ns_ConnSendFdEx and Ns_ConnReturnOpenFdEx routines
  816 	to send open file descriptors using pread, allowing
  817 	multi-threaded use.
  818 
  819 	* nsd/queue.c: Moved code from Ns_ConnInit to the core as
  820 	Ns_ConnInit is now a no-op to avoid confusing folks on
  821 	whether it's required to call or not.
  822 
  823 	* nsd/quotehtml.c:  Fix to support UTF-8.
  824 
  825 	* nsd/fd.c:
  826 	* nsd/init.c: Support for new Ns_DevNull API which was going
  827 	to be used by Ns_ConnContentFd.
  828 
  829 	* nsd/server.c:
  830 	* nsd/tclhttp.c: Removed old-style ns_http in favor of only
  831 	the new Ns_Task-based code.
  832 
  833 	* nsdb/nsdb.c: Fixed crash loading nsdb outside a virtual server.
  834 
  835 	* nsd/adpcmds.c:
  836 	* nsd/adpeval.c:
  837 	* nsd/binder.c:
  838 	* nsd/callbacks.c:
  839 	* nsd/compress.c:
  840 	* nsd/dns.c:
  841 	* nsd/listen.c:
  842 	* nsd/log.c:
  843 	* nsd/nswin32.c:
  844 	* nsd/rollfile.c:
  845 	* nsd/sock.c:
  846 	* nsd/sockcallback.c:
  847 	* nsd/task.c:
  848 	* nsd/tclinit.c:
  849 	* nsd/tcljob.c:
  850 	* nsd/tclsched.c:
  851 	* nsd/tclsock.c:
  852 	* nsd/tclvar.c:
  853 	* nsd/unix.c: Code cleanup to avoid duplicate routine and
  854 	struct names across files.
  855 
  856 
  857 2005-06-21  Jim Davidson <jgdavidson@aol.com>
  858 
  859 	* nsd/connio.c:  Fixed bad return code for Ns_ConnReadLine.
  860 	* nsd/task.c:  Fixed to handle a return of POLLHUP from poll.
  861 
  862 
  863 2005-03-27  Jim Davidson <jgdavidson@aol.com>
  864 
  865 	* nsdb/dbtcl.c:  Updated ns_db to be an object command.
  866 
  867 	* nsd/driver.c:
  868 	* nsd/limits.c:
  869 	* nsd/pools.c:
  870 	* nsd/tcljob.c:
  871 	* nsd/tclrequest.c:  Fixed usage of Tcl_GetIndexFromObj.
  872 
  873 	* nsd/exec.c: Sets errno from child in parent for better
  874 	error messaging.
  875 
  876 2005-03-24  Jim Davidson <jgdavidson@aol.com>
  877 
  878 	Several changes to cleanup and clarify Tcl resource management,
  879 	add support for large content overflow to temp file (minimal
  880 	testing, likley more work to be done), and simplify encoding
  881 	management.  Also, updated the version to 4.5 given the
  882 	scope of changes since 4.0
  883 
  884 	* include/ns.h: Added Ns_FindCharset and Ns_GetCharsetEncodingEx.
  885 	and bumped version to 4.5.
  886 
  887 	* nsd/nsd.h: Simplified connection encoding config, renamed
  888 	NsGetInterp to more clear NsGetInterpData.
  889 
  890 	* nsd/tclshare.c:
  891 	* nsd/tclset.c:
  892 	* nsd/tclthread.c: Changed NsGetInterp to NsGetInterpData.
  893 
  894 	* nsd/adprequest.c: Removed some connection setup code now
  895 	part of Ns_GetConnInterp.
  896 
  897 	* nsd/connio.c: Simplified Ns_WriteCharConn and added code
  898 	to set the input encoding in Ns_ConnInit.
  899 
  900 	* nsd/driver.c:
  901 	* nsd/conn.c: Added support for large content
  902 	requests spooled to a temp file. In these cases, the
  903 	NS_CONN_FILECONTENT flag is set and the content can be
  904 	accessed via the the new Ns_ConnContentFd routine or ns_conn
  905 	contentchannel option (limited test, feedback appreciated).
  906 
  907 	* nsd/form.c: Updated to use Ns_ConnGetUrlEncoding.
  908 
  909 	* nsd/nsconf.c: Removed call to NsUpdateUrlEncode no longer
  910 	required.
  911 
  912 	* nsd/queue.c: Call to new private NsFreeConnInterp instead
  913 	of Ns_FreeConnInterp which is now a no-op.
  914 
  915 	* nsd/encoding.c:
  916 	* nsd/urlencode.c:
  917 	* nsd/request.c:
  918 	* nsd/server.c: Simplified charset/encoding config for
  919 	process-wide url decoding and per-virtual server defaults
  920 	for dyanmic Tcl requests.
  921 
  922 	* nsd/tclcmds.c: Made ns_atclose an object command.
  923 
  924 	* nsthread/tls.c:
  925 	* nsd/Makefile:
  926 	* nsd/tclatclose.c:
  927 	* nsd/tclinit.c: Restructured to be more clear and added
  928 	detailed comments to help describe the Tcl management
  929 	complexity. Also, incorporated code from tclatclose.c and
  930 	moved call to Tcl_FinalizeThread directly into the nsthread
  931 	library.
  932 
  933 	* nsthread/pthread.c: Fixed comments.
  934 
  935 	* nsd/tclrequest.c:
  936 	* nsd/return.c: Some minor cleanup.
  937 
  938 
  939 2005-03-04  Nathan Folkman <shmooved@aol.com>
  940 
  941         * nsd/limits.c: Fixed bug where limitsPtr->name was 
  942         incorrectly being set to NULL. Updated FindLimits() to 
  943         initialize all values in Limits structure. Renamed keys
  944         returned by LimitsResult() to distinguish between items 
  945         which are counts (ntimeout, ndropped, noverflow, etc.) 
  946         and items which are configuration parameters (maxwait, 
  947         timeout, maxrun, etc.)
  948 
  949 
  950 2005-01-18  Nathan Folkman <shmooved@aol.com>
  951 
  952         * nsd/tcljob.c: Minor clean up to "cannot wait on job" error
  953         message which wasn't correctly implemented.
  954 
  955 
  956 2005-01-17  Jim Davidson <jgdavidson@aol.com>
  957 
  958 	Some work fixing up the new thread pools and limits code.
  959 	Quick background:
  960 
  961 	Pools are designed to allow certain requests to be handled
  962 	by specific collections of threads.  This could, for example,
  963 	ensure multiple long running requests don't block other
  964 	short running requests.  Pools are selected based on
  965 	method/url pairs using url-specific data.  By default, all
  966 	requests are handled by a single unlimited "default" pool.
  967 	There is also an "error" pool described below.  You can
  968 	create and configure additional pools with the ns_pools
  969 	command.
  970 
  971 	Limits are designed to manage resources before the connection
  972 	is ready to run.  They are also keyed on the method/url
  973 	pair and include such items as max concurrent connections,
  974 	max file upload size, and timeouts for I/O and run wait.
  975 	When limits are exceeded, the driver thread will dispatch
  976 	the connection to the "error" pool to generate a quick
  977 	response.  By default all requests share the same default
  978 	limits.  You can create and configure additional limits
  979 	with the ns_limits command.
  980 
  981 	* nsd/nsd.h:
  982 	* nsd/driver.c: Renamed NsGetLimits and NsGetPool to
  983 	NsGetRequestLimits and NsGetConnPool for a bit of clarity.
  984 
  985 	* nsd/queue.c: Re-enabled ns_server command, now with
  986 	optional thread arg to specify the thread pool to query
  987 	(default is "default").
  988 
  989 	* nsd/pools.c:
  990 	* nsd/limits.c: Cleaned up code and added comments.
  991 
  992 	* nsd/encoding.c: Bug fix.
  993 
  994 
  995 2005-01-17  Jim Davidson <jgdavidson@aol.com>
  996 
  997 	* include/ns.h:
  998 	* nsd/connio.c:
  999 	* nsd/conn.c: Added new Ns_ConnSetStatus and Ns_ConnGetStatus
 1000 	routines to set/get HTTP response status code to be sent
 1001 	in reponses by Ns_ConnFlush.
 1002 
 1003 	* doc/mkLinks:
 1004 	* doc/Ns_ConnHeaders.3: Added placeholders for new
 1005 	Ns_ConnGetStatus and Ns_ConnSetStatus routines.
 1006 
 1007 	* nsd/nsd.h:
 1008 	* nsd/encoding.c: Removed previous private type/encoding
 1009 	code now integrated into new public Ns_ConnSetType.
 1010 
 1011 	* nsd/return.c: Updated ReturnCharData to use new Ns_ConnFlush.
 1012 
 1013 	* nsd/server.c: Removed some config code to set encodings
 1014 	now determine when needed based on charsets.
 1015 
 1016 	* nsd/form.c: New NsCheckQuery private routine to verify
 1017 	query form was decoded with current encoding.
 1018 
 1019 	* nsd/queue.c: Fixed possible race in NsConnArgProc.
 1020 
 1021 	* nsd/adprequest.c:
 1022 	* nsd/driver.c: Minor cleanup.
 1023 
 1024 
 1025 2005-01-15  Jim Davidson <jgdavidson@aol.com>
 1026 
 1027 	Among some general code cleanup, several changes to factor
 1028 	out previous ADP-only code for encoding, compressing, and/or
 1029 	chunking output via a more general Ns_ConnFlush routine.
 1030 	ADP output semantics should now be closer to those of stdio
 1031 	including a specific "ns_adp_flush" mechanism to force a
 1032 	valid streamed response (likely in HTTP/1.1 "chunked" format)
 1033 	during execution as well as a buffer high-water mark which
 1034 	will force flushing on overflow (default 1meg).  These
 1035 	changes should both be more flexible to use and allow ADP's
 1036 	which generate very large results to avoid consuming memory
 1037 	waiting to send a single, large response.  Ordinary ADP's
 1038 	which generate a normal, relatively small responses, will
 1039 	behave as before.
 1040 
 1041 	*  include/ns.h: Added Ns_ConnFlush, Ns_ConnSend, Ns_ConnSetType,
 1042 	and Ns_ConnGetType along with some new NS_CONN constaints.
 1043 
 1044 	* nsd/connio.c: Added Ns_ConnFlush which provides a general
 1045 	encoding, compressing, chunking response capbility which
 1046 	was mostly previous ADP-only code.
 1047 
 1048 	* nsd/conn.c: Added Ns_ConnSetType and Ns_ConnGetType routines.
 1049 
 1050 	* nsd/form.c: Added checks to better catch a change in URL
 1051 	encoding.
 1052 
 1053 	* nsd/tclcmds.c:
 1054 	* nsd/adpcmds.c: Added ns_adp_ctl, ns_adp_flush, and
 1055 	ns_adp_close commands and simplified code with new NsAdpGetBuf
 1056 	routine.  Also, use of new Ns_ConnSetType and Ns_ConnGetType
 1057 	to factor out previous ADP-only code.
 1058 
 1059 	* nsd/nsd.h: Combined AdpParse and AdpCode structs, several
 1060 	new ADP_ and SERV_ flag bits, and several new ADP internal
 1061 	routines.
 1062 
 1063 	* nsd/adpeval.c:
 1064 	* nsd/adpparse.c: Simplified code by combining AdpParse and
 1065 	AdpCode structs and added new AdpTrace facility to monitor
 1066 	ADP internals.
 1067 
 1068 	* nsd/adprequest.c: Added NsAdpGetBuf API and factored out
 1069 	flush/close code to use new more general Ns_ConnFlush API.
 1070 
 1071 	* nsd/driver.c: Now truncates instead of freeing I/O dstring
 1072 	bufs to avoid repeated realloc calls between connections
 1073 	(potential source of additional memory growth).
 1074 
 1075 	* nsd/request.c: Added comment for for NsAppendRequest.
 1076 
 1077 	* nsd/return.c:
 1078 	* nsd/server.c: Use of new flag bits instead of specific
 1079 	bool's and several new config options.  Also, added
 1080 
 1081 	* doc/ns_adp.n:
 1082 	* doc/mkLinks:
 1083 	* doc/Ns_ConnHeaders.3:
 1084 	* doc/Ns_ConnRead.3:
 1085 	* doc/Ns_ConnWrite.3: Added placeholders for new ns_adp_close,
 1086 	ns_adp_ctl, and ns_adp_flush commands and Ns_ConnFlush,
 1087 	Ns_ConnGetType and Ns_ConnSetType routines (unfortunately
 1088 	no actual documentation yet).
 1089 
 1090 	* nsd/compress.c:
 1091 	* nsd/fastpath.c:
 1092 	* nsd/fd.c:
 1093 	* nsd/limits.c: nsd/nsmain.c nsd/quotehtml.c: Minor casts
 1094 	to silence compiler.
 1095 
 1096 
 1097 2005-01-03  Zoran Vasiljevic <zv@archiware.com>
 1098 
 1099 	* nsd/tclfile.c: Certain command sequence with [ns_chan] may cause
 1100 	  server to crash (see SF BUG #1094480). Fixed now.
 1101 	  Also, fixed channel tables cleanup and channel-closing which also
 1102 	  cored the server due to better Tcl library checking.
 1103 
 1104 2004-12-06  Dossy Shiobara <dossy@panoptic.com>
 1105 
 1106 	* include/ns.h (1.73), nsd/dns.c (1.12), nsd/tclsock.c (1.21),
 1107 	  tests/new/ns_addrbyhost.test (1.2): Implement
 1108 	  Ns_GetAllAddrByHost() and [ns_addrbyhost -all].  Closes SF RFE
 1109 	  #999452.
 1110 
 1111 2004-12-01  Dossy Shiobara <dossy@panoptic.com>
 1112 
 1113 	* include/ns.h (1.72): Provide NS_VERSION_NUM definition to make
 1114 	  conditionalized testing of AOLserver version at build time easy.
 1115 
 1116 2004-11-20  Dossy Shiobara <dossy@panoptic.com>
 1117 
 1118 	* nsd/tclsched.c (1.6): Option parsing needed to be more careful,
 1119 	  leading to segfaults when a bad command like [ns_schedule_proc
 1120 	  -thread -only] is executed.  Closes SF Bug #1068836.
 1121 
 1122 2004-11-19  Dossy Shiobara <dossy@panoptic.com>
 1123 
 1124 	* configure (1.24), configure.in (1.19): autoconf now detects if
 1125 	  libgcc is built shared, in which case LIBS needs -lgcc_s.
 1126 	  Without it, the nsd binary will fail to link because of
 1127 	  unresolved symbols __umoddi3 and __udivdi3 in nsd/dsprintf.c.
 1128 
 1129 2004-11-19  Dossy Shiobara <dossy@panoptic.com>
 1130 
 1131 	* nsd/Makefile (1.43): Adding -lz to LIBS is now redundant.
 1132 
 1133 2004-11-19  Dossy Shiobara <dossy@panoptic.com>
 1134 
 1135 	* include/nsthread.h (1.28): Need to include <inttypes.h> on some
 1136 	  platforms (OS X, Solaris 10) to get C99 "uint32_t" and other
 1137 	  types.
 1138 
 1139 2004-11-19  Dossy Shiobara <dossy@panoptic.com>
 1140 
 1141 	* configure (1.23), configure.in (1.18), include/Makefile.global.in
 1142 	  (1.17), nsd/compress.c (1.2): Add --with-zlib configure option
 1143 	  (on by default) and add ifdef's to nsd/compress.c.
 1144 
 1145 2004-11-19  Dossy Shiobara <dossy@panoptic.com>
 1146 
 1147 	* nsd/Makefile (1.42), nsd/compress.c (1.1), include/ns.h (1.71):
 1148 	  Add new Ns_Compress() function to gzip data using Zlib.
 1149 
 1150 2004-11-17  Dossy Shiobara <dossy@panoptic.com>
 1151 
 1152 	* nsd/adprequest.c (1.18): Don't send Content-Length if streaming
 1153 	  is on.
 1154 
 1155 2004-11-15  Dossy Shiobara <dossy@panoptic.com>
 1156 
 1157 	* nsd/nsmain.c (1.60): AOLserver will now allow setting the fd
 1158 	  limit (via "ulimit -Hn", etc.) and only log a warning if it
 1159 	  exceeds FD_SETSIZE.  Do this at your own risk, as things which
 1160 	  still use select(), i.e., Tcl, are likely to break.
 1161 
 1162 2004-11-05  Dossy Shiobara <dossy@panoptic.com>
 1163 
 1164 	* nsd/sockcallback.c (1.15): Dereferencing cbPtr->nextPtr is
 1165 	  dangerous since cbPtr could have been freed.
 1166 
 1167 2004-10-27  Jim Davidson <jgdavidson@aol.com>
 1168 
 1169 	* include/nsd.h:
 1170 	* nsd/adpcmds.c:
 1171 	* nsd/adpeval.c: Updates to new ADP cache capability, changing
 1172 	ns_adp_include -ttl option to -cache and adding -nocache option.
 1173 
 1174 2004-10-26  Jim Davidson <jgdavidson@aol.com>
 1175 
 1176 	* ns.h:
 1177 	* nsd/adpcmds.c:
 1178 	* nsd/adpeval.c:
 1179 	* nsd/adprequest.c:
 1180 	* nsd/nsd.h:
 1181 	* nsd/server.c: Added new ADP caching capabilities enabled via
 1182 	configuration and/or ns_adp_include -ttl (work in progress).
 1183 
 1184 	* nsd/queue.c:
 1185 	* nsd/driver.c:
 1186 	* nsd/request.c: Fixes to avoid thread race conditions when
 1187 	when using ns_info threads.
 1188 
 1189 2004-10-06  Jim Davidson <jgdavidson@aol.com>
 1190 
 1191 	* include/ns.h:
 1192 	* nsd/task.c:
 1193 	* nsd/server.c:
 1194 	* nsd/tclcmds.c
 1195 	* nsd/tclnhttp.c: Added new I/O task API and a new implementation
 1196 	of ns_http which uses and has more flexible argument processing.
 1197 	A tcl/oldhttp server config option (default on) bypasses the
 1198 	new ns_http for the previous implementation based on the sock
 1199 	callback API.
 1200 
 1201 	* nsd/nswin32.c:
 1202 	* nsd/unix.c:
 1203 	* nsd/sock.c: Moved duplicate poll() emulation code to sock.c and
 1204 	added the NsPoll() wrapper used in driver.c and task.c.
 1205 
 1206 	* nsd/log.c:
 1207 	* nsd/nsmain.c: Ns_Fatal now calls abort() on Ns_Fatal when running
 1208 	in debugger mode (i.e., with the -d command line option).
 1209 
 1210 	* nsd/nsd.h: Various updates to support the above additions.
 1211 
 1212 2004-09-30  Dossy Shiobara <dossy@panoptic.com>
 1213 
 1214 	* include/ns.h (1.68), nsd/tclhttp.c (1.21), nsd/sockcallback.c
 1215 	  (1.14): Implement Ns_SockCancelCallbackEx() in order to correctly
 1216 	  cancel actions in the SockCallbackThread.  Fix for SF Bug
 1217 	  #1037196.
 1218 
 1219 2004-09-29  Dossy Shiobara <dossy@panoptic.com>
 1220 
 1221 	* include/ns.h (1.67), nsd/tclhttp.c (1.20), nsd/sockcallback.c
 1222 	  (1.13): Fix a thread hang issue when ns_http fails but
 1223 	  HttpCancel() never executes because poll() returns revent ==
 1224 	  POLLPRI.  Closes SF Bug #1037196.
 1225 
 1226 2004-09-24  Dossy Shiobara <dossy@panoptic.com>
 1227 
 1228 	* include/nsthread.h (1.27): Win32 supports the
 1229 	  get{addr,name}info() API, so use it.
 1230 
 1231 2004-09-24  Dossy Shiobara <dossy@panoptic.com>
 1232 
 1233 	* nsd/dns.c (1.11): Small memory leak introduced on platforms w/
 1234 	  getaddrinfo.	Closes SF Bug #1033575.
 1235 
 1236 2004-09-22  Dossy Shiobara <dossy@panoptic.com>
 1237 
 1238 	* configure (1.22), configure.in (1.17): get{addr,name}info on
 1239 	  Solaris 9 is in -lsocket.
 1240 
 1241 2004-09-21  Dossy Shiobara <dossy@panoptic.com>
 1242 
 1243 	* configure (1.21), configure.in (1.16): Ensure we use the compiler
 1244 	  from the Tcl build during AOLserver configure process, unless
 1245 	  it's explicitly overrided during the AOLserver build.
 1246 
 1247 2004-09-21  Dossy Shiobara <dossy@panoptic.com>
 1248 
 1249 	* aclocal.m4 (1.4): Make detection of gethostby{addr,name}_r more
 1250 	  robust.  Closes SF Bug #1032231.
 1251 
 1252 2004-09-20  Dossy Shiobara <dossy@panoptic.com>
 1253 
 1254 	* nsd/: nsmain.c (1.58), nsd.h (1.91), unix.c (1.18): Need to set
 1255 	  the dumpable flag on Linux in order to get a core file after
 1256 	  uid/gid is changed.  Closes SF Bug #1031599.
 1257 
 1258 2004-09-17  Dossy Shiobara <dossy@panoptic.com>
 1259 
 1260 	* nsd/connio.c (1.16): Ns_ConnSend() now bubbles up the error from
 1261 	  NsSockSend() on first send, which is what the C API documentation
 1262 	  says.  Closes SF Bug #1029512.
 1263 
 1264 2004-09-08  Dossy Shiobara <dossy@panoptic.com>
 1265 
 1266 	* nslog/nslog.html (1.2): Updated nslog module documentation.
 1267 	  Closes SF Bug #466236.
 1268 
 1269 2004-09-08  Dossy Shiobara <dossy@panoptic.com>
 1270 
 1271 	* nscgi/nscgi.html (1.3): Add datatype for config options to doc.
 1272 
 1273 2004-09-07  Dossy Shiobara <dossy@panoptic.com>
 1274 
 1275 	* tests/new/all.tcl (1.3): Fix test runner script to work when
 1276 	  LD_LIBRARY_PATH isn't set.
 1277 
 1278 2004-09-07  Dossy Shiobara <dossy@panoptic.com>
 1279 
 1280 	* Makefile (1.52), tests/new/harness.tcl (1.3),
 1281 	  tests/new/ns_addrbyhost.test (1.1), tests/new/ns_hostbyaddr.test
 1282 	  (1.1), tests/new/test-ns_addrbyhost.adp (1.2),
 1283 	  tests/new/test-ns_hostbyaddr.adp (1.2),
 1284 	  tests/new/test-ns_hrefs.adp (1.2): Rework tests and harness to
 1285 	  run in tclsh.
 1286 
 1287 2004-09-03  Dossy Shiobara <dossy@panoptic.com>
 1288 
 1289 	* nscgi/nscgi.html (1.2): Updated nscgi module documentation for
 1290 	  4.0.	Closes SF Bug #465907.
 1291 
 1292 2004-09-01  Dossy Shiobara <dossy@panoptic.com>
 1293 
 1294 	* nsd/: info.c (1.17), nsd.h (1.90), nsmain.c (1.57): Expose "-s"
 1295 	  cmdline arg to config interp via [ns_info server].  Fixes SF Bug
 1296 	  #421740.
 1297 
 1298 2004-08-27  Jim Davidson <jgdavidson@aol.com>
 1299 
 1300 	* nsd/nsd.h
 1301 	* nsd/driver.c
 1302 	* nsd/tclrequest.c: Removed (the undocumented) Ns_RegisterPreQue in favor or
 1303 	a new NS_FILTER_PRE_QUEUE flag for Ns_RegisterFilter.
 1304 	* nsd/limits.c: Set more reasonable default limits.
 1305 
 1306 
 1307 2004-08-25  Dossy Shiobara <dossy@panoptic.com>
 1308 
 1309 	* nsd/driver.c (1.37): In the event of a SockRead() error, the
 1310 	  connection is no longer eligible for HTTP Keep-Alive.  Explicitly
 1311 	  set the SOCK_CLOSEWAIT state.
 1312 
 1313 2004-08-25  Dossy Shiobara <dossy@panoptic.com>
 1314 
 1315 	* Makefile (1.51): Add install command to copy over the automated
 1316 	  test config.
 1317 
 1318 2004-08-21  Dossy Shiobara <dossy@panoptic.com>
 1319 
 1320 	* tests/new/all.tcl (1.2): Non-threaded tclsh doesn't even set
 1321 	  ::tcl_platform(threaded) at all.
 1322 
 1323 2004-08-20  Jim Davidson <jgdavidson@aol.com>
 1324 
 1325 	* nsd/op.c: Handled error case requests based on overflow flag instead
 1326 	of response status.
 1327 	* nsd/limits.c: Added some more info returned with the get option.
 1328 	* nsd/pools.c: Added "error" pool to handle overflows.
 1329 	* nsd/nsd.h:
 1330 	* nsd/queue.c:
 1331 	* nsd/tclcmds.c:
 1332 	* nsd/driver.c: Fixed shutdown bugs and further simplified code.
 1333 	Also, added a query mechanism to peek into the state of a driver
 1334 	via the new ns_driver command.
 1335 
 1336 2004-08-20  Dossy Shiobara <dossy@panoptic.com>
 1337 
 1338 	* Makefile (1.50), tests/new/all.tcl (1.1), tests/new/harness.tcl
 1339 	  (1.2), tests/new/ns_hrefs.test (1.1): Implement automated tests
 1340 	  that can be run from a stand-alone tclsh.  New Makefile target
 1341 	  added called "test" which runs the tests.
 1342 
 1343 2004-08-17  Dossy Shiobara <dossy@panoptic.com>
 1344 
 1345 	* tcl/fastpath.tcl (1.10): If _ns_dirlist gets an URL without a
 1346 	  trailing slash, issue a 302 redirect back to the same url WITH
 1347 	  the trailing slash.  Fixes SF Bug #935907.
 1348 
 1349 2004-08-17  Dossy Shiobara <dossy@panoptic.com>
 1350 
 1351 	* nsd/driver.c (1.35): Fix stupid crash bug on Win32 -- put the
 1352 	  ns_free() in the wrong place.
 1353 
 1354 2004-08-17  Dossy Shiobara <dossy@panoptic.com>
 1355 
 1356 	* win32/build.tcl (1.6): Parse command line args at start.  Attempt
 1357 	  to build "debug" and "release" binaries.  Still needs work.
 1358 
 1359 2004-08-17  Dossy Shiobara <dossy@panoptic.com>
 1360 
 1361 	* nsd/fastpath.c (1.21): Minor change to eliminate Win32
 1362 	  compile-time warning.  Closes SF Bug #696806.
 1363 
 1364 2004-08-16  Dossy Shiobara <dossy@panoptic.com>
 1365 
 1366 	* nsd/driver.c (1.34): Win32 platform doesn't support mmap().
 1367 	  Maybe should define HAVE_MMAP instead in the future.
 1368 
 1369 2004-08-16  Dossy Shiobara <dossy@panoptic.com>
 1370 
 1371 	* win32/build.tcl (1.5): Add new limits.c and pools.c to nsd.dll
 1372 	  target.
 1373 
 1374 2004-08-16  Dossy Shiobara <dossy@panoptic.com>
 1375 
 1376 	* nsd/tclcmds.c (1.41): Alphabetize list of Tcl ObjCmd procs.
 1377 
 1378 2004-08-14  Jim Davidson <jgdavidson@aol.com>
 1379 
 1380 	* nsd/nsd.h
 1381 	* nsd/server.c
 1382 	* nsd/adpeval.c
 1383 	* nsd/adpparse.c: Updated ADP parser to allow post-processing
 1384 	text/script blocks into a single script block to allow incomplete
 1385 	scripts to span multiple blocks (e.g., <% if $cond %> ... <%
 1386 	} %>).	The "singlescript" ADP config option enables this on a
 1387 	per-virtual server basis.  Also, a "safeeval" config was added
 1388 	as well to enable safe evaluation of ADP files as is possible
 1389 	with ad-hoc ADP (safe Tcl ignores <% ... %> blocks, allowing
 1390 	only pre-configured ADP tags to execute).
 1391 
 1392 2004-08-14  Dossy Shiobara <dossy@panoptic.com>
 1393 
 1394 	* aclocal.m4 (1.3), configure (1.19), nsd/dns.c (1.10): Solaris 7
 1395 	  uses gethostbyaddr_r(), and the autoconf and GetHost() versions
 1396 	  didn't work.	Fixed now.
 1397 
 1398 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1399 
 1400 	* configure (1.18), configure.in (1.15), aclocal.m4 (1.2),
 1401 	  nsd/dns.c (1.9): gethostbyaddr() and gethostbyname() are not
 1402 	  thread-safe.	Use the new getaddrinfo() and getnameinfo() API
 1403 	  where available, otherwise use gethostbyaddr_r() and
 1404 	  gethostbyname_r() if available.  Otherwise, continue to use the
 1405 	  non-safe versions but emit a warning at configure time.  Fixes SF
 1406 	  Bug #1008721.
 1407 
 1408 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1409 
 1410 	* Makefile (1.49): The CVS/ directory was getting included in
 1411 	  install-tests-new target, oops.
 1412 
 1413 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1414 
 1415 	* win32/: nscgi/nscgi.dsp (1.6), nscp/nscp.dsp (1.6), nsd/nsd.dsp
 1416 	  (1.15), nsdb/nsdb.dsp (1.2), nslog/nslog.dsp (1.6),
 1417 	  nsperm/nsperm.dsp (1.6), nssock/nssock.dsp (1.9),
 1418 	  nsthread/nsthread.dsp (1.8), threadtest/threadtest.dsp (1.6):
 1419 	  Change Win32 .dsp files to reflect change in Tcl from
 1420 	  "tcl84td.lib" to "tcl84tg.lib".  Fixes SF Bug #996342.
 1421 
 1422 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1423 
 1424 	* nsd/tclmisc.c (1.31), tests/new/test-ns_hrefs.adp (1.1): ns_hrefs
 1425 	  is now more robust.  Fixes SF Bug #995078.
 1426 
 1427 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1428 
 1429 	* Makefile (1.48): New "install-tests-new" target to install new
 1430 	  automated tests.
 1431 
 1432 2004-08-13  Dossy Shiobara <dossy@panoptic.com>
 1433 
 1434 	* tests/new/harness.tcl (1.1): Really basic test harness for
 1435 	  automating tests.
 1436 
 1437 2004-08-11  Dossy Shiobara <dossy@panoptic.com>
 1438 
 1439 	* nsd/nsconf.c (1.34): Inability to resolve nsconf.hostname to set
 1440 	  nsconf.address is no longer fatal, and instead defaults to
 1441 	  "0.0.0.0".  Fixes SF Bug #994072.
 1442 
 1443 2004-08-11  Dossy Shiobara <dossy@panoptic.com>
 1444 
 1445 	* nsd/driver.c (1.31): Ensure defMapPtr is initialized.
 1446 
 1447 2004-08-11  Dossy Shiobara <dossy@panoptic.com>
 1448 
 1449 	* nsd/driver.c (1.30): Fixed crash bug when virtual servers are
 1450 	  configured, but the "hostname" parameter didn't match any of the
 1451 	  virtual servers.  Fixed by introducing new "defaultserver"
 1452 	  parameter in the comm. config that must refer to one of the
 1453 	  virtual servers being defined.
 1454 
 1455 2004-08-11  Dossy Shiobara <dossy@panoptic.com>
 1456 
 1457 	* sample-config.tcl (1.14): Add "defaultserver" parameter in sample
 1458 	  config.
 1459 
 1460 2004-08-10  Dossy Shiobara <dossy@panoptic.com>
 1461 
 1462 	* nsd/driver.c (1.29): Crash due to FreeConn() happening twice,
 1463 	  once from DriverThread() and once from SockClose().  Commented
 1464 	  out call from SockClose() for now.  Don't decrement
 1465 	  limitPtr->nrunning if the connPtr->flags indicated overflow or
 1466 	  timeout, since we didn't increment nrunning.	Set responseStatus
 1467 	  to 503 so requests actually overflow or timeout again.
 1468 
 1469 2004-08-10  Jim Davidson <JGDavidson@aol.com>
 1470 
 1471 	* nsd/driver.c (1.28): Restructured code (again) to better support
 1472 	  overload and timeout conditions (work in progress).
 1473 
 1474 2004-08-10  Jim Davidson <JGDavidson@aol.com>
 1475 
 1476 	* nsd/: nsd.h (1.86), pools.c (1.4), queue.c (1.27): Moved pool
 1477 	  selection to pools.c from queue.c and added timeout pool config
 1478 	  option.
 1479 
 1480 2004-08-10  Jim Davidson <JGDavidson@aol.com>
 1481 
 1482 	* include/ns.h (1.65): Added conn flags to track overflow and
 1483 	  timeout conditions.
 1484 
 1485 2004-08-05  Rob Crittenden <rcrittenden0569@aol.com>
 1486 
 1487 	* nsd/tclhttp.c: Add new option to ns_http wait, -servicetime, so
 1488 	  you can capture how long the HTTP request took. Backported from
 1489 	  aolserver_v40_bp.
 1490 
 1491 2004-07-30  Dossy Shiobara <dossy@panoptic.com>
 1492 
 1493 	* nsd/: limits.c (1.3), pools.c (1.3): Fixed mistake adding
 1494 	  "default" pool to pools hashtable.  Change ns_pools set options
 1495 	  to include leading "-" just like ns_limits.
 1496 
 1497 2004-07-30  Dossy Shiobara <dossy@panoptic.com>
 1498 
 1499 	* nsd/driver.c (1.27): Fixes nslog logging incorrect number of
 1500 	  bytes sent in access.log.
 1501 
 1502 2004-07-30  Dossy Shiobara <dossy@panoptic.com>
 1503 
 1504 	* include/ns.h (1.64), nsd/driver.c (1.26), nsd/limits.c (1.2),
 1505 	  nsd/nsd.h (1.85), nsd/op.c (1.13), nsd/pools.c (1.2), nsd/queue.c
 1506 	  (1.26), nsd/return.c (1.41): Implement the "maxwait" limit.  Use
 1507 	  connPtr->responseStatus to short circuit request processing, for
 1508 	  returning HTTP 400 and 503 status responses indirectly from the
 1509 	  driver thread.
 1510 
 1511 2004-07-29  Dossy Shiobara <dossy@panoptic.com>
 1512 
 1513 	* nsd/driver.c (1.25): Missed incrementing connPtr->roff when
 1514 	  applying Jim's changes.  Oops.
 1515 
 1516 2004-07-29  Dossy Shiobara <dossy@panoptic.com>
 1517 
 1518 	* include/ns.h (1.63), nsd/Makefile (1.40), nsd/connio.c (1.15),
 1519 	  nsd/driver.c (1.24), nsd/fastpath.c (1.20), nsd/init.c (1.9),
 1520 	  nsd/limits.c (1.1), nsd/nsd.h (1.84), nsd/nsmain.c (1.56),
 1521 	  nsd/pools.c (1.1), nsd/queue.c (1.25), nsd/server.c (1.29),
 1522 	  nsd/tclcmds.c (1.40): (These changes are actually Jim Davidson's,
 1523 	  I just merged them and am checking them in on his behalf.)
 1524 
 1525 	  This commit completes (yet another) rewrite of the driver thread
 1526 	  mechanism, along with implementing connection classes
 1527 	  ("ns_limits") and request processing pools ("ns_pools").
 1528 
 1529 	  The code compiles, but does NOT work yet.  I will be correcting
 1530 	  the few remaining issues, soon.
 1531 
 1532 2004-07-29  Dossy Shiobara <dossy@panoptic.com>
 1533 
 1534 	* doc/Ns_TclInit.3 (1.7): Change version number in doc header.
 1535 
 1536 2004-07-29  Dossy Shiobara <dossy@panoptic.com>
 1537 
 1538 	* nsd/return.c (1.40): Remove unused local variable.
 1539 
 1540 2004-07-29  Dossy Shiobara <dossy@panoptic.com>
 1541 
 1542 	* nsd/tcljob.c (1.26): Change mutex name to conform to naming
 1543 	  standard.
 1544 
 1545 2004-07-28  Dossy Shiobara <dossy@panoptic.com>
 1546 
 1547 	* doc/Ns_TclInit.3 (1.6): Better documentation on Tcl interp init C
 1548 	  API.
 1549 
 1550 2004-07-28  Dossy Shiobara <dossy@panoptic.com>
 1551 
 1552 	* configure (1.17): Forgot to re-run autoconf2.13 after the very
 1553 	  last change to configure.in.
 1554 
 1555 2004-07-28  Dossy Shiobara <dossy@panoptic.com>
 1556 
 1557 	* include/ns.h (1.62): BUMP: 4.1.0a
 1558 
 1559 2004-07-28  Dossy Shiobara <dossy@panoptic.com>
 1560 
 1561 	* configure.in (1.14), configure (1.16): Clean up configure.in,
 1562 	  regenerate configure with autoconf2.13, and clear CCRPATH/LDRPATH
 1563 	  if CCRFLAGS/LDRFLAGS are empty.  Closes SF Bug #640754.
 1564 
 1565 2004-07-28  Dossy Shiobara <dossy@panoptic.com>
 1566 
 1567 	* win32/build.tcl (1.4): DEBUG=2 now yields a really noisy build.
 1568 
 1569 2004-07-26  Dossy Shiobara <dossy@panoptic.com>
 1570 
 1571 	* win32/build.tcl (1.3): Now some build variables can be overrided
 1572 	  from the command line.
 1573 
 1574 2004-07-22  Dossy Shiobara <dossy@panoptic.com>
 1575 
 1576 	* sample-config.tcl (1.13): Use [info sharedlibextension] so that
 1577 	  we don't have to name DLLs under Win32 with a .so extension.
 1578 
 1579 2004-07-22  Dossy Shiobara <dossy@panoptic.com>
 1580 
 1581 	* win32/build.tcl (1.2): Ensure we're using the version of Tcl we
 1582 	  built against by having the "install" target place it into the
 1583 	  AOLserver install dirs.
 1584 
 1585 2004-07-22  Dossy Shiobara <dossy@panoptic.com>
 1586 
 1587 	* win32/build.tcl (1.1): Simple Tcl script to produce the Win32
 1588 	  build of AOLserver.
 1589 
 1590 2004-07-19  tag aolserver_v40_r7
 1591 
 1592 2004-07-19  Dossy Shiobara <dossy@panoptic.com>
 1593 
 1594 	* nsd/init.c (1.8): While harmless, don't call NsInitInfo() twice.
 1595 	  Oops.
 1596 
 1597 2004-07-18  Dossy Shiobara <dossy@panoptic.com>
 1598 
 1599 	* nsd/: nsd.h (1.83), nsconf.c (1.33), init.c (1.7):
 1600 	  Ns_GetAddrByHost() reports errors via Ns_Log(), so calls to it
 1601 	  should be done after Ns_Log has been initialized, otherwise very
 1602 	  unhelpful error messages are produced.  In particular, this
 1603 	  happens when the server is started and the hostname as returned
 1604 	  by gethostname() cannot be resolved, because the network
 1605 	  interface is down AND no entry exists in /etc/hosts.	Closes SF
 1606 	  Bug #868362.
 1607 
 1608 2004-07-16  Dossy Shiobara <dossy@panoptic.com>
 1609 
 1610 	* nsd/driver.c (1.23): Setting request->method to static storage,
 1611 	  which later gets ns_free()'d in Ns_FreeRequest(), caused server
 1612 	  to crash.
 1613 
 1614 2004-07-16  tag aolserver_v40_r6
 1615 
 1616 2004-07-13  Dossy Shiobara <dossy@panoptic.com>
 1617 
 1618 	* nsd/: driver.c (1.22), op.c (1.12): Needed a more graceful way of
 1619 	  taking a pre-queue socket and send it a 400 Bad Request.  Still a
 1620 	  hack, but I think it's safer this way.
 1621 
 1622 2004-07-13  Dossy Shiobara <dossy@panoptic.com>
 1623 
 1624 	* nsd/driver.c (1.21): Change to make HTTP request "Host:" header
 1625 	  mandatory for HTTP/1.1 connections by returning 400 Bad Request
 1626 	  response.  Closes SF Bug #787728.  Also, changed virtual server
 1627 	  code to use the "hostname" param from the "ns/module/nssock"
 1628 	  section to map the default virtual server based on the value
 1629 	  (hostname) from the "ns/module/nssock/servers" section, when the
 1630 	  "Host:" header is either not specified (HTTP/1.0) or is not found
 1631 	  in the virtual server table.	Closes SF Bug #812036.
 1632 
 1633 2004-07-13  Dossy Shiobara <dossy@panoptic.com>
 1634 
 1635 	* nslog/nslog.c (1.15): conn->headers can be NULL causing segfault.
 1636 	  Closes SF Bug #990439.
 1637 
 1638 2004-07-13  Dossy Shiobara <dossy@panoptic.com>
 1639 
 1640 	* include/nsthread.h (1.26): OpenBSD 3.5 doesn't define ENOTSUP, so
 1641 	  we'll define it ourselves.  Closes SF Bug #985076.
 1642 
 1643 2004-07-06  Dossy Shiobara <dossy@panoptic.com>
 1644 
 1645 	* nsd/return.c (1.39): Fix bug where internal redirect for 401
 1646 	  omitted including the HTTP auth. "WWW-Authenticate:" header.
 1647 	  Fixes bug #674033.
 1648 
 1649 2004-07-02  Dossy Shiobara <dossy@panoptic.com>
 1650 
 1651 	* nsd/mimetypes.c (1.12): Ns_GetMimeType() was returning
 1652 	  defaultType instead of noextType if the path contained a
 1653 	  directory with a "." but the filename component had no extension.
 1654 	  Fixes bug #739049.
 1655 
 1656 2004-07-02  Dossy Shiobara <dossy@panoptic.com>
 1657 
 1658 	* nsd/: fastpath.c (1.19), return.c (1.38): Enable ADP/Tcl code to
 1659 	  override Last-Modified: header from ns_respond when -headers AND
 1660 	  -file are specified.	Closes bug #879076.
 1661 
 1662 2004-07-02  Dossy Shiobara <dossy@panoptic.com>
 1663 
 1664 	* nsd/tclresp.c (1.17): lots of refactoring of ns_respond code to
 1665 	  remove duplication
 1666 
 1667 2004-07-02  Dossy Shiobara <dossy@panoptic.com>
 1668 
 1669 	* nsd/init.tcl (1.31): ns_eval of script containing comments (i.e.,
 1670 	  lines starting with #) cause an error because  is a list, which
 1671 	  gets evaluated differently than a plain string script.  Fixes bug
 1672 	  #833940.
 1673 
 1674 2004-07-01  Dossy Shiobara <dossy@panoptic.com>
 1675 
 1676 	* nsd/: nsd.h (1.82), nsmain.c (1.55): Ensure that supplementary
 1677 	  groups from /etc/group are set if -u username is specified, or
 1678 	  dropped if a uid is specified so that the nsd doesn't run with
 1679 	  root's supplementary groups.	Closes bug #425401.
 1680 
 1681 2004-07-01  Dossy Shiobara <dossy@panoptic.com>
 1682 
 1683 	* nsd/: nsd.h (1.81), nsd.h (1.77.2.4): trivial - eliminate
 1684 	  compiler warning for nsd/nsmain.c
 1685 
 1686 2004-07-01  Dossy Shiobara <dossy@panoptic.com>
 1687 
 1688 	* nsthread/tls.c (1.3): Make the Tcl_Panic() message from
 1689 	  Ns_TlsGet() and Ns_TlsSet() include the full function name to aid
 1690 	  in debugging.
 1691 
 1692 2004-06-30 17:03  Dossy Shiobara <dossy@panoptic.com>
 1693 
 1694 	* nsd/unix.c: Ensure synchronous signals are handled correctly
 1695 	  under LinuxThreads.  Possible fix for Bug #982955.
 1696 
 1697 2004-06-30 01:16  Dossy Shiobara <dossy@panoptic.com>
 1698 
 1699 	* include/ns.h: Fix build on alpha arch, removing extra INT64
 1700 	  typedef.  Closes bug #896962.
 1701 
 1702 2004-06-23  Zoran Vasiljevic <zv@archiware.com>
 1703 
 1704 	* nsd/tclxkeylist.c: fixed improper handling of objects
 1705 	returned by reference in Tcl_GetKeyedListField wrapper.
 1706 	Also, fixed typo in the ckstrdup macro.
 1707         Also, using correct size_t types in various places.
 1708 
 1709 2004-06-23  Rob Crittenden <rcrittenden0569@aol.com>
 1710 
 1711 	* nsd/log.c: ns_log now logs to a custom logger as well.
 1712 
 1713 2004-06-22  Zoran Vasiljevic <zv@archiware.com>
 1714 
 1715 	* nsd/tclxkeylist.c: added compatiblity layer for the following
 1716 	functions, since it broke some older code:
 1717 	    Tcl_GetKeyedListKeys
 1718 	    Tcl_GetKeyedListField
 1719 	    Tcl_SetKeyedListField
 1720 	    Tcl_DeleteKeyedListField
 1721 
 1722 	The compatiblity layer for the string-based Tcl-API is not done.
 1723 	I will add this if requested.
 1724 
 1725 2004-06-20  Zoran Vasiljevic <zv@archiware.com>
 1726 
 1727 	* include/ns.h:
 1728 	* nsd/nsd.h:
 1729 	* nsd/tclcmds.c:
 1730 	* nsd/tclinit.c:
 1731 	* nsd/tclxkeylist.c: added objectified version of TclX
 1732 	  keyed-list implementation (Patch #812522).
 1733 
 1734 2004-06-19  Zoran Vasiljevic <zv@archiware.com>
 1735 
 1736 	* nsd/tclsock.c: Improved NsTclSockOpenObjCmd() to accept
 1737 	  two optional parameters: -localhost and -localport as
 1738 	  per patch #815889 from Vlad Seryakov.  The patch itself
 1739 	  was used as a starting point but the implementation is
 1740 	  different i.e. the command-option parsing is rewritten
 1741 	  to be much more tight than in the patch and also in the
 1742 	  previous implementation.
 1743 
 1744 2004-06-14 20:28  Dossy Shiobara <dossy@panoptic.com>
 1745 
 1746 	* nsd/connio.c: If nsend == 0, we would never call Ns_WriteConn to
 1747 	  flush the queued headers.  This could happen when we're sending
 1748 	  zero bytes of data as a response.  This fixes bug #971016 in the
 1749 	  case where fastpath.cache=false and fastpath.mmap=false and a
 1750 	  zero byte file is requested.
 1751 
 1752 2004-06-14 20:25  Dossy Shiobara <dossy@panoptic.com>
 1753 
 1754 	* nsd/return.c: unnecessary test for data != NULL actually caused
 1755 	  part of bug #971016 when fastpath.cache=false and
 1756 	  fastpath.mmap=true and the file requested is zero bytes, mmap()
 1757 	  returns 0 which gets passed along as data == NULL, causing
 1758 	  ReturnCharData() to not flush the queued headers.  removing the
 1759 	  if is safe as Ns_WriteConn will simply flush any queued data
 1760 
 1761 2004-06-08  Rob Crittenden <rcrittenden0569@aol.com>
 1762 
 1763 	* Makefile: remove Makefile.module on distclean.
 1764 	* include/ns.h, nsd/log.c: Allow users to override logging functions.
 1765 	* nsd/str.c: Fix crash bug in Ns_Trim* when trimming NULL strings.
 1766 
 1767 2004-06-08  Rob Crittenden <rcrittenden0569@aol.com>
 1768 
 1769 	* TAG aolserver_v40_r5
 1770 
 1771 2004-03-09 13:35  Rob Crittenden <rcrittenden0569@aol.com>
 1772 
 1773 	* nsd/tclhttp.c: The last header was being missed because the pointer
 1774 	  was being advanced past the \r\n.
 1775 
 1776 2004-02-26 14:37  Dossy Shiobara <dossy@panoptic.com>
 1777 
 1778 	* nsd/unix.c: uid_t is supposed to be unsigned, but apparently
 1779 	  isn't on OSX, apparently.
 1780 
 1781 2004-02-25 19:56  Dossy Shiobara <dossy@panoptic.com>
 1782 
 1783 	* nscgi/nscgi.c: Ns_ConnSetRequiredHeaders now requires length < 0
 1784 	  if you don't want a Content-Length header
 1785 
 1786 2004-02-25 19:55  Dossy Shiobara <dossy@panoptic.com>
 1787 
 1788 	* nsd/return.c: fix so that it's still possible to formulate a
 1789 	  response with no Content-Length header (such as for nscgi, or
 1790 	  HTTP streaming) where you don't know the Content-Length header in
 1791 	  advance
 1792 
 1793 2004-02-24 07:15  Dossy Shiobara <dossy@panoptic.com>
 1794 
 1795 	* nsd/: nsmain.c, nsd.h, driver.c: fix race condition where
 1796 	  DriverThreads are spawned but before they can Ns_SockListenEx,
 1797 	  the main thread does its NsClosePreBound and closes the prebound
 1798 	  sockets, making them unavailable to the DriverThreads if they
 1799 	  require root priv to listen on
 1800 
 1801 2004-02-18 01:30  Dossy Shiobara <dossy@panoptic.com>
 1802 
 1803 	* nsperm/nsperm.c: fixed bug #899364, restoring old nsperm
 1804 	  functionality as it was in 3.x.
 1805 
 1806 2004-02-15  Jim Davidson <jgdavidson@aol.com>
 1807 
 1808 	* nsd/conn.c:
 1809 	* include/ns.h:
 1810 	* nsd/return.c: Added new Ns_ConnGet/SetKeepAliveFlag APIs to
 1811 	allow custom request procedures to enable keep-alive directly.
 1812 
 1813 	* nsd/driver.c: Minor updates to separate conn & driver structs.
 1814 
 1815 2004-01-01  Scott S. Goodwin <scott@scottg.net>
 1816 
 1817         * nsd/adpparse.c: fixed bug #868600, where tag attribute values
 1818 	encapsulated within single quotes weren't being parsed properly.
 1819 
 1820 2003-12-27  Scott S. Goodwin <scott@scottg.net>
 1821 
 1822         * nsd/urlopen.c: fixed bug #844809.
 1823 
 1824         * sample-config.tcl: fixed bug #805761.
 1825 
 1826 2003-12-24  Scott S. Goodwin <scott@scottg.net>
 1827 
 1828 	* include/nsthread.h: Bumped up NS_THREAD_NAMESIZE from 32 to 64.
 1829 	Mutex names were being truncated, making it impossible to distinguish
 1830 	mutexes with longer names when looking at stats.
 1831 
 1832         * nscgi/nscgi.c: Changed HTTPS env variable to be set to "on" or "off"
 1833 	instead of "1" or "0". There doesn't appear to be any standard for
 1834 	this, but Apache uses the on/off string in the environment.
 1835 
 1836 2003-12-16  Scott S. Goodwin <scott@scottg.net>
 1837 
 1838         * nscgi/nscgi.c: Fixed issue with HTTPS environment variable not being
 1839         set, and port not being set to 443 if connection is SSL'd. Manually
 1840         applied these changes from a patch supplied by Vinod Kurup.
 1841 
 1842 2003-11-16  Jim Davidson <jgdavidson@aol.com>
 1843 
 1844 	* include/ns.h: Update version ids, added NS_SOCK_DROP and
 1845 	NS_TCL_TRACE constants and pre-queue function definitions.
 1846 
 1847 	* nsd/nsd.h:  Added new "times" struct to Conn for more
 1848 	fine-grained timing.  Need to provide options to enable
 1849 	these time stamps plus ways to get the data.
 1850 
 1851 	* nsd/driver.c:  Restructured in a few ways:
 1852 
 1853 	1. Each loaded driver now has it's own thread.  This should
 1854 	allow some more concurrency (if necessary) and generally
 1855 	made the code more manageable.
 1856 
 1857 	2. New pre-queue I/O callback API.  The API will be documented
 1858 	with an example HTTP module later.
 1859 
 1860 	3. Conn allocation is handled by the driver threads and
 1861 	request buffers have been moved to the Conn from the Sock.
 1862 
 1863 	4. Reads for synchrounous drivers (i.e., SSL) are handled
 1864 	by a pool of reader threads instead of by the conn threads.
 1865 	The number of threads is set with a "maxreaders" config
 1866 	option.  This change should enable both Host: header based
 1867 	virtual servers and pre-queue callbacks for SSL connections.
 1868 
 1869 	5. New "maxsocks" config for drivers is now used to manage
 1870 	the concurrency limit of the server.  Conn's are now queued
 1871 	without limit into the connection pools and the previous
 1872 	"maxconns" virtual-server config is ignored.
 1873 
 1874 	* nsd/queue.c: Cleaned up "connsperthread" code and updated
 1875 	NsQueueConn to support new driver code.
 1876 
 1877 	* nsd/conn.c:
 1878 	* nsd/connio.c:
 1879 	* nsd/form.c:
 1880 	* nsd/nsd.h:
 1881 	* nsd/queue.c:
 1882 	* nsd/return.c: Moved connection request buffers from Sock
 1883 	to Conn structure.
 1884 
 1885 	* nsd/server.c: Removed startup Conn pre-allocation as Conns
 1886 	are now allocated dynamically by the driver.  Also, removed
 1887 	the "maxconns" parameter which is no longer used.
 1888 
 1889 	* nssock/nssock.c: Added new "async" option (default on)
 1890 	mostly to test new reader thread capabilities of the core
 1891 	driver code.
 1892 
 1893 	* nsd/tclinit.c: Added a new generalized Tcl interp tracing
 1894 	facility and cleaned up some previous init code.  This
 1895 	should make it easier to support standard Tcl extensions
 1896 	and will be documented with an example module later.
 1897 
 1898 	* nsd/nsmain.c: Fixed order of driver shutdown wait.
 1899 
 1900 	* nsd/init.c: Fixed order of init calls.
 1901 
 1902 	* nsd/binder.c:
 1903 	* nsd/dns.c: Named unnamed mutexes.
 1904 
 1905 	* nsd/tclset.c:
 1906 	* nsd/tclsock.c: Removed unused functions.
 1907 
 1908 2003-11-03  pkhincha <pkhincha@aol.com>
 1909 
 1910 	* nsd/urlspace.c: removed initing of mutex
 1911 	* nsd/nsmain.c: calling NsWaitDriversShutdown
 1912 
 1913 2003-11-01  Zoran Vasiljevic <zv@archiware.com>
 1914 
 1915 	* tcl/file.tcl: fixed broken argument convention for the
 1916 	unused argument of ns_sourceproc.
 1917 
 1918 2003-10-28  Zoran Vasiljevic <zv@archiware.com>
 1919 
 1920 	* nsd/tclatclose.c: fixed typo in command usage text
 1921 
 1922 2003-10-09  Mark Page  <mpagenva@aol.com>
 1923 
 1924         * TAG aolserver_v4_r0_beta_20
 1925         * doc/ns_job.n:
 1926         * tests/api/ns_job.adp:
 1927         * nsd/tcljob.c: Change timeout specification to be ns_time
 1928         based.
 1929 	
 1930 2003-10-21  Elizabeth Thomas <eathomas93@aol.com>
 1931 
 1932 	* nsd/init.tcl: Removing lazyproc code from 4.0 to enable it
 1933         to be declared GM. Solution is being refined and may be added 
 1934         in later release or add-on module. 
 1935 
 1936 2003-10-14  Paul Moosman <pwmoosman@aol.com>
 1937 
 1938 	* nsd/tcljob.c: Fix to ns_job, where it was attempting to access
 1939         a deleted queue.
 1940 
 1941 2003-10-09  Mark Page  <mpagenva@aol.com>
 1942 
 1943         * TAG aolserver_v4_r0_beta_18
 1944 	
 1945 2003-10-09  Elizabeth Thomas <eathomas93@aol.com>
 1946 
 1947         * nsd/init.tcl: Fix syntax error in check for null proc.
 1948 
 1949 2003-10-08  Mark Page  <mpagenva@aol.com>
 1950 
 1951         * TAG aolserver_v4_r0_beta_17
 1952 	
 1953 	* nsd/init.tcl (ns_eval): Minor change to track change to ns_job.
 1954 
 1955 2003-10-08  Paul Moosman <pwmoosman@aol.com>
 1956 
 1957 	* nsd/tcljob.c: Minor change to ns_job joblist return to be
 1958         consistent with similar aolserver api's.
 1959 
 1960 2003-10-07  Mark Page  <mpagenva@aol.com>
 1961 
 1962         * TAG aolserver_v4_r0_beta_16
 1963 	
 1964 	* nsd/init.tcl (ns_eval): The early 4.0 ns_eval had been
 1965 	waiting for the completion of integrating script changes into the
 1966 	server's init script.  This change adds the ability to return
 1967 	without waiting for the init script integration completion (as the
 1968 	default).  A new switch modifies this behavior to force it to wait
 1969 	for the completion of init script integration.  Added another
 1970 	switch to request a report of ns_eval backlog.
 1971 
 1972 	* nsd/adpeval.c (LogError): Limit the amount of script text added
 1973 	into the errorInfo string, to keep from flowing adp script texts
 1974 	of unlimited length into the server log.
 1975 
 1976 2003-10-06  Paul Moosman <pwmoosman@aol.com>
 1977 
 1978 	* nsd/tcljob.c: Replaced ctime_r with ns_ctime to fix a win32
 1979 	compile problem. This change should fix bug #811802.
 1980 	Fixed a potential deadlock case.
 1981 	Fixed a problem where the maxthreads option was getting ignored.
 1982 
 1983 2003-10-01  Elizabeth Thomas <eathomas93@aol.com>
 1984 
 1985         * nsd/init.tcl: Fix to _ns_lzproc_load to handle subtle behavior with
 1986         respect to namespaces and the test to see if the proc will be successfully
 1987         recognized. Also, fix to protect against infinite loop on unknown processing
 1988         if null command is executed.
 1989 
 1990 2003-09-22  Mark Page  <mpagenva@aol.com>
 1991 
 1992         * TAG aolserver_v4_r0_beta_15
 1993 
 1994 2003-09-22  Paul Moosman <pwmoosman@aol.com>
 1995 
 1996         * nsd/tcljob.c: Add options to ns_job Api, for waitany, delete(queue), 
 1997           listjobs, etc.
 1998 
 1999 2003-09-19  Mark Page  <mpagenva@aol.com>
 2000 
 2001         * nsd/adprequest.c:
 2002           nsd/adpeval.c: Fix error where 
 2003           xxx.adp --> ns_adp_parse --> ns_adp_include --> ns_adp_puts results in
 2004           the puts text going directly into the final result buffer, rather then
 2005           to the intermediate buffer to be returned by ns_adp_parse to the xxx.adp
 2006           page code.
 2007 
 2008 2003-09-12  Mark Page  <mpagenva@aol.com>
 2009 
 2010 	* TAG aolserver_v4_r0_beta_14
 2011 
 2012 2003-09-11  Elizabeth Thomas  <eathomas93@aol.com>
 2013 
 2014         * nsd/init.tcl: Add 'lazyproc' functionality. Controlled by 
 2015         ns/parameters config parm 'lazyprocdef' (defaults to 'false')
 2016         When 'true', we do not put proc definitions in the interp
 2017         init script, but instead wrap the tcl 'unknown' command and
 2018         evaluate them on the first reference. Also wraps the tcl 'info'
 2019         command to intercept queries about procs not yet in the interpreter.
 2020 
 2021 2003-09-03  Mark Page  <mpagenva@aol.com>
 2022 
 2023 	* TAG aolserver_v4_r0_beta_13
 2024 	* nsd/tclinit.c (NsTclICtlObjCmd): Fix intermittant core dumps
 2025         occurring during oncleanup processing.  The error is in the Tcl_Obj
 2026 	for the script passed into ns_ictl on* callbacks was being saved
 2027 	and passed to the callbacks (this Tcl_Obj was then being shared 
 2028         amoung Interps, which is not allowed).
 2029 	Now, extract a copy of the script string, and pass that to the callbacks.
 2030 
 2031 2003-08-27  Elizabeth Thomas  <eathomas93@aol.com>
 2032 
 2033 	* nsd/adprequest.c: Complete 8/12 fix of not
 2034         logging error for ns_adp_break
 2035 
 2036 2003-08-26  Mark Page  <mpagenva@aol.com>
 2037 
 2038 	* TAG aolserver_v4_r0_beta_12
 2039 
 2040 2003-08-26  Elizabeth Thomas <eathomas93@aol.com>
 2041 
 2042         * nsd/tclinit.c: Fix the 'oncleanup' option of ns_ictl.
 2043         Modify behavior of Ns_RegisterAtDelete so callbacks are
 2044         run before the interp is destroyed. Expose with new 'ondelete'
 2045         option to ns_ictl.
 2046 
 2047 2003-08-25  Mark Page  <mpagenva@aol.com>
 2048 
 2049 	* nsd/adprequest.c (): Suppress production of the result data for
 2050 	requests with SKIPBODY set.
 2051 	* nsd/return.c (ReturnCharData): Allow headers to be returned for
 2052 	requests with SKIPBODY; e.g., HEAD requests.
 2053 
 2054 2003-08-21  Zoran Vasiljevic <zoran@archiware.com>
 2055 
 2056 	* nsd/tclfile.c: properly detach and attach the Tcl channel
 2057 	out and in the current interpreter.
 2058 
 2059 2003-08-19  Rahul Bhargava <rahul032213@aol.com>
 2060 
 2061         * nsd/return.c: Updated to support HTTP/1.1 Transfer Chunk Encoding 
 2062         Headers only.
 2063 
 2064 2003-08-19  Nathan Folkman <shmooved@aol.com>
 2065 
 2066         * nsd/return.c: Updated to include status code from: 
 2067         RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1) and
 2068         RFC 2518 (HTTP Extensions for Distributed Authoring -- WEBDAV).
 2069 
 2070 2003-08-12  Elizabeth Thomas <eathomas93@aol.com>
 2071 
 2072 	* nsd/adprequest.c: Don't log ns_adp_abort or ns_adp_break as errors.
 2073 
 2074 2003-08-08  Elizabeth Thomas <eathomas93@aol.com>
 2075 
 2076 	* nsd/mimetypes.c: 
 2077         * sample_config.tcl: Add support for xhtml mime type. (RFE #563417)
 2078 
 2079         * TAG aolserver_v4_r0_beta_11
 2080 
 2081 2003-08-06  Elizabeth Thomas <eathomas93@aol.com>
 2082 
 2083 	* nsd/tclset.c: Fix ns_set split argument checking. (#757849)
 2084 
 2085 2003-08-05  Elizabeth Thomas <eathomas93@aol.com>
 2086 
 2087 	* nsd/conn.c:
 2088         * nslog/nslog.c:
 2089         * include/ns.h:
 2090         * sample-config.tcl: Merge in feature from 3.5 branch (with simpler 
 2091         implementation) for logging of request execution time in access log. 
 2092 
 2093         To turn on feature add:   
 2094 
 2095         ns_section "ns/server/${servername}/module/nslog"
 2096            ns_param logreqtime true
 2097 
 2098         By default the option is disabled. If enabled the connection's
 2099         request time will be appended to the access log before the
 2100         extended headers (if configured).
 2101 
 2102 2003-07-18  Elizabeth Thomas <eathomas93@aol.com>
 2103 
 2104 	* nsd/tclinit.c: Add optional mutex to serialize interp initialization.
 2105         With large init scripts and many threads, there is severe malloc 
 2106         lock contention while tcl evaluates the init script (and populates
 2107         its memory pool). Serializing the initialization reduces the thrashing and 
 2108         results in faster startup.
 2109 
 2110         * nsd/nsconf.c, nsconf.h, nsd.h: Add config variable 'tclinitlock'
 2111         which activates the above. Defaults to false if not specified.
 2112 
 2113         * TAG aolserver_v4_r0_beta_10
 2114 
 2115 2003-07-18  Mark Page  <mpagenva@aol.com>
 2116 
 2117 	* nsd/adpeval.c (AdpEval): Check adp.outputPtr validity before
 2118 	use.  It can get reset within this adp evaluation loop from
 2119 	commands like ns_respond (when it does an internal redirect for
 2120 	the file not found case).  In this case, it's appropriate that
 2121 	further text from this page code is not appended to the result, as
 2122 	other code had determined that the result was complete.
 2123 
 2124 2003-07-12  Zoran Vasiljevic <zoran@archiware.com>
 2125 
 2126 	* nslog/nslog.c: the "X-Forwarded-For" header existence is examined
 2127 	when logging the remote user. This allows for logging the real
 2128 	remote user wnen it commes from some proxy and/or load balancer.
 2129 	Thanks for Gustaf Neumann of XOTcl for the patch. This implements  
 2130 	the RFE #770054.
 2131 
 2132 2003-07-10  Mark Page  <mpagenva@aol.com>
 2133 
 2134 	* TAG aolserver_v4_r0_beta_9
 2135 	
 2136 2003-07-01  Mark Page  <mpagenva@aol.com>
 2137 
 2138 	* nsd/init.tcl (ns_eval): Protect against nested ns_eval calls,
 2139 	which would otherwise lead to deadlocks.
 2140 
 2141 2003-06-26  Mark Page  <mpagenva@aol.com>
 2142 
 2143 	* nsd/adpeval.c: Fix problem where ns_adp_include was not propogating
 2144         errors.
 2145 
 2146 2003-06-25  Mark Page  <mpagenva@aol.com>
 2147 
 2148 	* nsd/init.tcl: (ns_eval) Fix thread-safety issue with ns_eval,
 2149 	where multiple simultanous usages can clobber a change.
 2150 	(_ns_getscript) suppress saving the Tcl global variable 'env' into
 2151 	the init script.  Tcl's init takes care of 'env', and including it
 2152 	into the init script would cause SetEnvs at interp create that are
 2153 	unneeded and undesired.
 2154 
 2155 2003-06-18  Mark Page  <mpagenva@aol.com>
 2156 
 2157 	* nsthread/thread.c (Ns_ThreadCreate): Fix typo in Ns_ThreadCreate
 2158 	that was causing it to ignore the stacksize parameter.
 2159 
 2160 	* nsd/init.tcl (_ns_eval): Fix ns_eval to prevent it's bleeding of
 2161 	unintended Tcl environment change to the global interp state.
 2162 
 2163 2003-06-06  Zoran Vasiljevic <zoran@archiware.com>
 2164 
 2165 	* nsd/queue.c: fixed "connsperthread" config parameter
 2166 	as reported in bug item #749801. Default is set to
 2167 	"0" i.e. thread will perform unlimited number of
 2168 	connections (never exit) unless it's idle timer
 2169 	(if configured) expires. 
 2170 
 2171 2003-05-31  Zoran Vasiljevic <zoran@archiware.com>
 2172 
 2173 	* nsd/config.c: uses Ns_TclDestroyInterp instead of the
 2174 	Tcl_DeleteInterp.
 2175 
 2176 	* nsthread/nsthreadtest.c:
 2177 	* nsd/info.c:
 2178 	* nsd/nsmain.c:
 2179 	* include/Makefile.module.in:
 2180 	* configure:
 2181 	* configure.in: added --disable-shared so we can now build the
 2182 	nsd image statically.
 2183  
 2184 2003-05-31  Zoran Vasiljevic <zoran@archiware.com>
 2185 
 2186 	* nsd/cache.c:
 2187 	* include/ns.h:
 2188 	* doc/Ns_Cache.3: added C-API for Ns_CacheTryLock as in RFE #725704
 2189 	
 2190 2003-05-30  Mark Page <mpagenva@aol.com>
 2191 
 2192 	* nsd/tclthread.c: fix problem in ns_thread begindetached api.
 2193         This code was failing to create the new thread as detached.
 2194         Also corrected for the Ns_TclDetachedThread C api.  As a
 2195         result of this change, non-detached threads will return their
 2196         TclEval result to Ns_ThreadExit, making it available to a
 2197         thread join.
 2198 
 2199 2003-05-28  Mark Page  <mpagenva@aol.com>
 2200 
 2201 	* TAG aolserver_v4_r0_beta_8
 2202 	
 2203 2003-05-28  Mark Page <mpagenva@aol.com>
 2204 
 2205 	* nsd/tclimg.c: Use binary channel to read img (Thanks to Dossy).
 2206         Eliminate double error string; Corrrect compiler warning on Seek.
 2207         * tcl/form.c: Fix to ns_querygetall to suppress null sublists.  Also,
 2208         make the defaulting semantics work as described.
 2209 
 2210 2003-05-24  Zoran Vasiljevic <zoran@archiware.com>
 2211 
 2212 	* nsd/info.c: added workaround for Tcl_GetMemoryInfo() which
 2213 	is not defined in Tcl if somebody undefines USE_THREAD_ALLOC.
 2214 	Generally, this call should be avoided altogether.
 2215 
 2216 	* nsd/tclinit.c: added call to Tcl_FinalizeThread() in the
 2217 	DeleteInterps() to properly finalize Tcl data on thread exit,
 2218  	thus closing the re-appearing memory leak from V3.3 nsd.
 2219 
 2220 2003-05-20  Mark Page  <mpagenva@aol.com>
 2221 
 2222 	* TAG aolserver_v4_r0_beta_7
 2223 	
 2224 2003-05-20  Mark Page <mpagenva@aol.com>
 2225 
 2226 	* nsd/tclimg.c: Addition error checks in gif size read.
 2227         * nsd/adpcmds.c: Error check calls to ns_adp funcs.
 2228         * nsd/tclinit.c: Error check calls to Ns_TclGetConn and Ns_TclServerInterp.
 2229 
 2230 2003-05-19  Mark Page <mpagenva@aol.com>
 2231 
 2232 	* nsd/tclinit.c: suppress byte-compile for interp init scripts
 2233         * nsd/tclthread.c: fix fmr.
 2234 
 2235 2003-05-16  Zoran Vasiljevic <zoran@archiware.com>
 2236 
 2237 	* nsdb/dbinit.c: fixed hash table initialization in IncrCount
 2238 	to TCL_ONE_WORD_KEYS instead of TCL_STRING_KEYS. Credits to
 2239 	Jean-Fabrice RABAUTE for the bug report.
 2240 
 2241 2003-05-14  Zoran Vasiljevic <zoran@archiware.com>
 2242 
 2243 	* nsd/tclthread.c: fixed NsTclCondObjCmd to be compatible
 2244 	to the 3.x pendant in way it threats the optional timeout
 2245 	argument. The 3.x reverted to indefinite (i.e. non-timewait) 
 2246 	condvar waits when the optional "timeout" argument was given
 2247         as zero.
 2248 	The 4.x version just exited with NS_TIMEOUT (= 0) in such 
 2249  	cases breaking Tcl scripts written for 3.x.
 2250         The corrective measure is to check the passed timeout value
 2251 	and if == 0, revert to non-timewait condition waits as the
 2252 	3.x does (did).
 2253 	
 2254 2003-05-13  Mark Page  <mpagenva@aol.com>
 2255 
 2256 	* TAG aolserver_v4_r0_beta_6
 2257 	
 2258 2003-05-12  Mark Page  <mpagenva@aol.com>
 2259 
 2260 	* nsd/urlencode.c : (bug fix) urlencode was passing through too
 2261         many characters unencoded.  In particular, the '+' was getting
 2262         passed through, which causes unsymmetric encode/decode since
 2263         '+' in encoded string translates to ' '(space).
 2264 
 2265 2003-04-25  Mark Page  <mpagenva@aol.com>
 2266 
 2267 	* nsd/tclvar.c (NsTclNsvArrayObjCmd): (bug fix) nsv_array exists
 2268 	must return true if an nsv exists, regardless of the number of
 2269 	array elements in the nsv.
 2270 
 2271 2003-04-24  Mark Page  <mpagenva@aol.com>
 2272 
 2273 	* nsd/queue.c (ConnRun): Ensure that a Internal Error status is
 2274 	returned to the client if an error status is returned from a
 2275 	pre-auth filter.  Previously, the connection was simply closed,
 2276 	causing difficult to diagnose problems to the client.  Also
 2277 	allow traces to run in this situation, so that access logging can
 2278 	occur.
 2279 
 2280 2003-04-23  Mark Page  <mpagenva@aol.com>
 2281 
 2282 	* nsd/log.c (NsTclLogObjCmd): (bug fix) Tweeked previous fix to
 2283 	suppress trailing space on output.
 2284 
 2285 2003-04-22  Nathan Folkman <shmooved@aol.com>
 2286 
 2287         * nsd/log.c: (bug fix) Fixed bug causing first two string
 2288         args of "ns_log" to be improperly concatendated.
 2289 
 2290 2003-04-16  Mark Page  <mpagenva@aol.com>
 2291 
 2292 	* nsd/modload.c (NsLoadModules): (bug) Failed parsing the explicit
 2293 	initialization specification properly.
 2294 
 2295 2003-04-10  Mark Page  <mpagenva@aol.com>
 2296 
 2297 	* TAG aolserver_v4_r0_beta_5
 2298 	
 2299 2003-04-07  Mark Page  <mpagenva@aol.com>
 2300 
 2301 	* nsd/tclthread.c (NsTclThread): ensure that the server has
 2302 	completed it's initializtion prior to initiating TclEval.
 2303 	* nsd/nsmain.c (Ns_WaitForStartup): add dirty-read of the
 2304 	conf.started flag.
 2305 
 2306 2003-04-04  Mark Page  <mpagenva@aol.com>
 2307 
 2308 	* nsd/tclinit.c:
 2309 	* nsd/tclcmds.c: Moved interp tracing functionality into ns_ictl
 2310 	api as one of it's subfunctions, removing the
 2311 	ns_register_interptrace api previously created.
 2312 
 2313 2003-04-03  Mark Page  <mpagenva@aol.com>
 2314 
 2315 	* nsd/tclinit.c:
 2316 	* nsd/tclcmds.c: Provide tcl api that exposes Ns_TclInitInterps
 2317 	and Ns_TclRegisterTrace.  ns_register_interptrace.
 2318 
 2319 2003-03-30  Scott S. Goodwin  <scott@scottg.net>
 2320 
 2321 	* include/ns.h:
 2322           nsd/driver.c:
 2323           nssock/nssock.c:
 2324           nsssl/nsssl.c: Modified Ns_DriverInit. Instead of passing all args
 2325           as parameters to Ns_DriverInit, a comm module must now create an
 2326           Ns_DriverInitData structure and populate it with appropriate values
 2327           (see include/ns.h) and pass that in the call to Ns_DriverInit. The
 2328           Ns_DriverInitData structure is versioned so that we can extend it
 2329           later without affecting other modules.
 2330 
 2331 2003-03-28  Mark Page  <mpagenva@aol.com>
 2332 
 2333 	* nsd/tclhttp.c: (bug) Fix uninitialized hdrs var, was causing segfault.
 2334 
 2335 2003-03-21  Mark Page  <mpagenva@aol.com>
 2336 
 2337         * TAG aolserver_v4_r0_beta_4
 2338 
 2339 2003-03-19  Mark Page  <mpagenva@aol.com>
 2340 
 2341         * nsd/tclhttp.c: Added method argument to ns_http queue api to
 2342         allow sending POSTs as well as GETs.
 2343 
 2344 2003-03-19  Mark Page  <mpagenva@aol.com>
 2345 
 2346         * nsext/nsext.c: Change back to using ns_socketpair for local
 2347         proxies, to retain PEEK functionality.
 2348 
 2349 2003-03-19  Zoran Vasiljevic <zoran@archiware.com>
 2350 
 2351 	* nsd/modload.c: added fallback for loading regular
 2352 	shared libraries in addition to bundles on Darwin.
 2353 
 2354 	* include/tcl.h: added set of version macros
 2355 	* nsd/config.c: added Ns_GetVersion API call.
 2356 
 2357 2003-03-10  Scott S. Goodwin  <scott@scottg.net>
 2358 
 2359 	* nscgi/nscgi.c: (bug) SERVER_NAME is now set correctly.
 2360 
 2361 2003-03-10  Mark Page  <mpagenva@aol.com>
 2362 
 2363 	* nsd/sched.c: (bug) Fix problem with shutting down event threads
 2364 	(these service detachted thread processing) on a server shutdown.
 2365 
 2366 2003-03-07  Nathan Folkman <shmooved@aol.com>
 2367 
 2368         * TAG aolserver_v4_r0_beta_3
 2369 
 2370 2003-03-07  Zoran Vasiljevic <zoran@archiware.com>
 2371 
 2372 	* include/ns.h:
 2373 	* nscgi/nscgi.c:
 2374 	* nscp/nscp.c:
 2375 	* nsd/adpeval.c:
 2376 	* nsd/adpparse.c:
 2377 	* nsd/binder.c:
 2378 	* nsd/config.c:
 2379 	* nsd/conn.c:
 2380 	* nsd/connio.c:
 2381 	* nsd/dns.c:
 2382 	* nsd/driver.c:
 2383 	* nsd/dstring.c:
 2384 	* nsd/encoding.c:
 2385 	* nsd/fastpath.c:
 2386 	* nsd/index.c:
 2387 	* nsd/info.c:
 2388 	* nsd/lisp.c:
 2389 	* nsd/listen.c:
 2390 	* nsd/log.c:
 2391 	* nsd/modload.c:
 2392 	* nsd/nsmain.c:
 2393 	* nsd/pidfile.c:
 2394 	* nsd/queue.c:
 2395 	* nsd/request.c:
 2396 	* nsd/rollfile.c:
 2397 	* nsd/sched.c:
 2398 	* nsd/sockcallback.c:
 2399 	* nsd/tclatclose.c:
 2400 	* nsd/tclfile.c:
 2401 	* nsd/tclhttp.c:
 2402 	* nsd/tclimg.c:
 2403 	* nsd/tclinit.c:
 2404 	* nsd/tcljob.c:
 2405 	* nsd/tclmisc.c:
 2406 	* nsd/tclshare.c:
 2407 	* nsd/tclsock.c:
 2408 	* nsd/tclvar.c:
 2409 	* nsd/tclxkeylist.c:
 2410 	* nsd/urlencode.c:
 2411 	* nsd/urlspace.c:
 2412 	* nsdb/dbinit.c:
 2413 	* nsdb/dbtcl.c:
 2414 	* nsext/nsext.c:
 2415 	* nslog/nslog.c:
 2416 	* nspd/log.c:
 2417 	* nspd/main.c:
 2418 	* nsperm/nsperm.c:
 2419 	* nsthread/mutex.c:
 2420 	* nsthread/nsthreadtest.c:
 2421 	* nsthread/pthread.c: 
 2422 	  o. removed unused variables
 2423 	  o. fixed warnings about non-initialized vars
 2424 	  o. CONST-ified according to Tcl 8.4+ rules
 2425 	
 2426 	* bin/init.tcl: _ns_getscript forces import of 
 2427   	  namespaced commands
 2428 
 2429 	* tcl/init.tcl: sets auto_path to start with 
 2430 	  our private library first
 2431 	
 2432 	* include/Makefile.global.in: allows for building 
 2433 	  with Solaris 2.6 and later
 2434  
 2435 2003-03-06  Mark Page  <mpagenva@aol.com>
 2436 
 2437 	* nsd/adpeval.c: Change defn of objs field of InterpPage to size
 2438 	1, since some compilers don't like 0 sized arrays.
 2439 
 2440 	* nsd/urlencode.c: 
 2441 	* nsd/queue.c:
 2442 	* nsd/server.c:
 2443 	* nsd/urlencode.c:
 2444 	* nsd/encoding.c:
 2445 	* nsd/nsd.h:
 2446 	* nsd/form.c:
 2447 	* nsd/conn.c:
 2448 	* include/ns.h:
 2449 	* tcl/form.tcl:
 2450 	* tcl/charsets.tcl(new): Added Tcl I18N support functions from
 2451 	OACS, with some changes to work within 4.0.
 2452 
 2453 2003-03-05  Zoran Vasiljevic <zoran@archiware.com>
 2454 
 2455 	* nsd/init.tcl: added handling of commands imported from
 2456 	  other namespaces in _ns_getscript procedure.
 2457 
 2458 2003-03-05  Mark Page  <mpagenva@aol.com>
 2459 
 2460 	* nsd/adpeval.c: (fix) Fixed handling of Tcl errors from script.
 2461 
 2462 2003-03-05  Mark Page  <mpagenva@aol.com>
 2463 
 2464 	* nsd/adpeval.c:
 2465         * nsd/adpcmds.c:
 2466 	* nsd/nsd.h: (patch) Added optional switches to ns_adp_parse;
 2467 	-cwd <path>, -savedresult <varname>
 2468 	-savedresult supports usages which require the adp script's result
 2469 	separate from the output buffer (which is the func result)
 2470 	-cwd supports prespecifying the initial cwd for which the script
 2471 	will be executed.
 2472 
 2473 2003-03-03 Nathan Folkman <shmooved@aol.com>
 2474 
 2475         * nscgi/nscgi.c: (bug fix) Applied patch to set SCRIPT_NAME 
 2476         which is passed as an environment variable to the CGI script.
 2477         SF bug 230479.
 2478 
 2479 2003-02-25  Nathan Folkman <shmooved@aol.com>
 2480 
 2481         * nsd/init.tcl: (patch) Added logging of errorInfo
 2482         and errorCode globals to _ns_sourcefile command.
 2483         SF patch 690025.
 2484 
 2485         * sample-config.tcl:
 2486         * tcl/fastpath.c: (bug fix) Added fast path configuration
 2487         example. Fixed bug that was adding an extra slash to 
 2488         directory listings in _ns_dirlist. SF bug 682077.
 2489 
 2490         * nsd/tclimg.c: (bug fix) Fixed ns_jpegsize command for
 2491         images which contained a DHT. Removed AppendDims command
 2492         which has been replaced with AppendObjDims. SF bug 685055.
 2493 
 2494 2003-02-07  Elizabeth Thomas <eathomas93@aol.com>
 2495 
 2496         * TAG aolserver_v4_r0_beta_2
 2497 
 2498         * tcl/sendmail.tcl: (bug fix) SF bugs 669217/669844
 2499         Fix handling of addressees so we don't lose friendly address name
 2500     
 2501         * configure: fix additional defaults from cc to gcc
 2502 
 2503 2003-02-06  Mark Page <mpagenva@aol.com>
 2504 
 2505         * nsd/return.c: (bug fix) SF bug 674033.
 2506         (bug fix) Correct the status code for BadRequest returns.
 2507 
 2508 2003-02-06  Jamie Rasmussen <jrasmuss@mle.ie>
 2509 
 2510         * nsthread/winthread.c: (bug fix) SF bug 675033.
 2511         (bug fix) Fixed crash on second DLL_THREAD_DETACH.
 2512 
 2513 2003-02-05  Elizabeth Thomas <eathomas93@aol.com>
 2514 
 2515         * nsext.c: Fix LocalProxy function to call Ns_CloseOnExec
 2516         after the file descriptors have been opened instead of before
 2517 
 2518 2003-02-04  Jamie Rasmussen <jrasmuss@mle.ie>
 2519 
 2520         * include/nsthread.h:
 2521         * include/ns.h:
 2522         * nscgi/nscgi.c:
 2523         * nscp/nscp.c:
 2524         * nsd/adpeval.c:
 2525         * nsd/driver.c:
 2526         * nsd/encoding.c:
 2527         * nsd/exec.c:
 2528         * nsd/fastpath.c:
 2529         * nsd/fd.c:
 2530         * nsd/info.c:
 2531         * nsd/init.c:
 2532         * nsd/listen.c:
 2533         * nsd/modload.c:
 2534         * nsd/nsd.h:
 2535         * nsd/nsmain.c:
 2536         * nsd/pathname.c:
 2537         * nsd/request.c:
 2538         * nsd/server.c:
 2539         * nsd/sock.c:
 2540         * nsd/sockcallback.c:
 2541         * nsd/tclenv.c:
 2542         * nsd/tclfile.c:
 2543         * nsd/tclhttp.c:
 2544         * nsd/tclimg.c:
 2545         * nsd/tclsock.c:
 2546         * nsd/tclxkeylist.c:
 2547         * nsd/urlencode.c:
 2548         * nsd/urlopen.c:
 2549         * nsd/getopt.c:
 2550         * nsd/getopt.h:
 2551         * nsd/nswin32.c:
 2552         * nssock/nssock.c:
 2553         * win32: Added Win32 support and build files
 2554 
 2555 2003-02-04  Nathan Folkman <shmooved@aol.com>
 2556 
 2557         * nsd/tclmisc.c: (bug fix) Fixed arg checking bug in
 2558         NsTclStrftimeObjCmd (ns_fmttime) API.
 2559 
 2560 2003-02-03  Jamie Rasmussen <jrasmuss@mle.ie>
 2561 
 2562         * tcl/sendmail.tcl: (bug fix) SF bug 632265.
 2563         * Fixed minor spelling errors in comments.
 2564 
 2565 2003-02-01  Nathan Folkman <shmooved@aol.com>
 2566 
 2567         * tcl/stats.tcl: Consolidated web based stats interface into
 2568         a single Tcl file.
 2569         * sample-config.tcl: Added web stats configuration.
 2570 
 2571 2003-01-31  Mark Page  <mpagenva@aol.com>
 2572 
 2573 	* nsd/conn.c: 
 2574 	* nsd/connio.c:
 2575 	* nsd/encoding.c:
 2576 	* nsd/form.c:
 2577 	* nsd/nsconf.c:
 2578 	* nsd/nsd.h:
 2579 	* nsd/queue.c:
 2580 	* nsd/return.c:
 2581 	* nsd/tclcmds.c:
 2582 	* nsd/tclresp.c:
 2583 	* nsd/urlencode.c:
 2584 	* include/ns.h: added in I18N capabilities derived from the OACS
 2585 	I18N design.  This set of changes is just those which are
 2586 	supported within the nsd C-code.
 2587 	* sample-config.tcl: Add text for I18N specific config.
 2588 
 2589 2003-01-28  Nathan Folkman <shmooved@aol.com>
 2590 
 2591         * nsd/server.c:
 2592         * tcl/fastpath.tcl: (bug fix) Tcl code was updated to reflect a
 2593         a change made earlier to server.c, in which all fast path related
 2594         configuration was moved from ns/server/<server> to
 2595         ns/server/<server>/fastpath. This change will require you to
 2596         update your configuration file to reflect the new configuration
 2597         path for any fast path options.
 2598         *** INCOMPATIBILITY ***
 2599 
 2600 2003-01-28  Nathan Folkman <shmooved@aol.com>
 2601 
 2602         * nsd/init.tcl: (bug fix) Updated ns_eval command to mark Tcl interp for
 2603         deletion in the case of a TCL_ERROR only. Updated ns_eval to properly
 2604         handle an arbitrarly long number of args. SF bug 675506.
 2605 
 2606 2003-01-24  Elizabeth Thomas <eathomas93@aol.com>
 2607 
 2608 	* include/Makefile.global.in:
 2609         * README: Added $(PURIFY) variable back from 3.4 to facilitate 
 2610         easy purify compile. 
 2611 
 2612         * configure: Made gcc the default value for $CC instead of cc.
 2613 
 2614 2003-01-23  Elizabeth Thomas <eathomas93@aol.com>
 2615 
 2616 	* Tagged first 4.0 beta: aolserver_v4_r0_beta_1
 2617 
 2618 2003-01-19  Nathan Folkman <shmooved@aol.com>
 2619 
 2620         * nscp/nscp.c: Cleaned up log messages to be more consistent 
 2621         with other server messages. Moved user name from thread name into
 2622         log notice. Control port logging now disabled by default. Added
 2623         more detailed configuration instructions to sample-config.tcl.
 2624 
 2625 2003-01-18  Jim Davidson <jgdavidson@aol.com>
 2626 
 2627 	* nsd/auth.c:
 2628 	* nsd/conn.c:
 2629 	* nsd/form.c:
 2630 	* nsd/httptime.c:
 2631 	* nsd/info.c:
 2632 	* nsd/log.c:
 2633 	* nsd/mimetypes.c:
 2634 	* nsd/nsconf.c:
 2635 	* nsd/nsd.h:
 2636 	* nsd/nsmain.c:
 2637 	* nsd/pathname.c:
 2638 	* nsd/random.c:
 2639 	* nsd/tclcmds.c:
 2640 	* nsd/tclfile.c:
 2641 	* nsd/tclhttp.c:
 2642 	* nsd/tclimg.c:
 2643 	* nsd/tclinit.c:
 2644 	* nsd/tclmisc.c:
 2645 	* nsd/tclrequest.c:
 2646 	* nsd/tclresp.c:
 2647 	* nsd/tclset.c:
 2648 	* nsd/tclsock.c:
 2649 	* nsd/tclthread.c:
 2650 	* nsd/urlencode.c:
 2651 	* nsd/urlopen.c:  Removed old string commands.
 2652 
 2653 	* nsd/conn.c:
 2654 	* nsd/connio.c:
 2655 	* nsd/driver.c:
 2656 	* nsd/init.c:
 2657 	* nsd/nsd.h:
 2658 	* nsd/queue.c:
 2659 	* nsd/return.c:
 2660 	* nsd/server.c:
 2661 	* nsd/tclinit.c:  Moved Host header mapping code from
 2662 	queue.c to driver.c to catch cases of unmapped Host's.
 2663 	Also, updated the Conn and Sock structures to maintain the
 2664 	servPtr and location correctly Host header based connections.
 2665 
 2666 	* nsthread/Makefile:
 2667 	* nsthread/cond.c (removed):
 2668 	* nsthread/error.c:
 2669 	* nsthread/memory.c:
 2670 	* nsthread/mutex.c:
 2671 	* nsthread/nsthreadtest.c:
 2672 	* nsthread/pthread.c (added):
 2673 	* nsthread/reentrant.c:
 2674 	* nsthread/thread.c:
 2675 	* nsthread/thread.h:
 2676 	* nsthread/time.c:
 2677 	* nsthread/tls.c:
 2678 	* nsthread/winthread.c (added):
 2679 	* include/nsthread.h:  Brought forward nsthread library
 2680 	from 3.5 which includes support for Win32.
 2681 
 2682 
 2683 2003-01-18  Zoran Vasiljevic <zoran@archiware.com>
 2684 	
 2685 	* nsd/init.tcl: Summary of changes:
 2686 	  o. added _ns_getpackages to enable "package require".
 2687 	  o. fixed various issues in ns_getscript proc related to
 2688 	     loading Tcl modules which define namespaced versions
 2689 	     of standard Tcl commands.
 2690 	  o. fixed ns_eval to return value/error and made compatible
 2691 	     with standard Tcl "eval" and AOLserver "ns_eval" from 3.x
 2692 	  o. made the entire file little bit more readable.
 2693 
 2694 2003-01-17  Mark Page  <mpagenva@aol.com>
 2695 
 2696 	* nsd/driver.c: Change to SockRead; if request has a
 2697 	content-length, null-terminate the content at the specified
 2698 	length.  This fixes a problem when some browsers add extra CRLF
 2699 	characters beyond the specified content-length on a POST (see this
 2700 	by using IE to POST data).
 2701 
 2702 2003-01-16  Elizabeth Thomas <eathomas93@aol.com>
 2703 
 2704         * nsd/tclmisc.c: Fix WordEndsInSemi so that ns_striphtml correctly
 2705         * handles ampersands that are not followed by a space or semicolon
 2706 
 2707 2002-11-06  Jeremy Collins <jcollins@phpsource.net>
 2708 
 2709         * nsd/adpparse.c: Changed ParseAtts to make it compatible with
 2710         how parsing works in 3.x.
 2711 
 2712         * nsd/init.tcl: Fixed namespace bug.
 2713 
 2714 2002-11-05  Jeremy Collins <jcollins@phpsource.net>
 2715 
 2716         * nsd/adpparse.c: Fixed a bug in Parse.  It was not parsing
 2717         registered tags inside of html tags (ex. <td bgcolor='<tag n='v'>'> )
 2718 
 2719         * nsd/tclset.c: Fixed a bug with ns_set tcl commands.  
 2720         ns_set idelkey|delkey would not actually delete the key.
 2721 
 2722 2002-11-02  Jim Davidson <jgdavidson@aol.com>
 2723 
 2724 	* nsd/fastpath.c:  Fixed bug with non-server specific cache names.
 2725 
 2726 2002-11-01  Jeremy Collins <jcollins@phpsource.net>
 2727 
 2728         * nsd/adpparse.c: Fixed a small bug in ParseAtts.  It failed
 2729         to properly parse attribute values with spaces in them.
 2730 
 2731 2002-10-29  Jim Davidson <jgdavidson@aol.com>
 2732 
 2733 	* sample-config.tcl:  Updated with examples for connection
 2734 	thread pools and Host header virtual servers.
 2735 
 2736 	* Makefile:  Uses /bin/sh to invoke install-doc.
 2737 
 2738 	* doc/install-doc:  Uses /bin/sh to invoke mkLinks.
 2739 
 2740 	* nsd/form.c:
 2741 	* nsd/conn.c:
 2742 	* tcl/form.tcl:  Changed "ns_conn files" command to just
 2743 	return names of file upload widgets, moving access to other
 2744 	meta data to new fileoffset, filelength, and fileheaders
 2745 	subcommands. Also, removed the ns_conn string command
 2746 	instead of updating.
 2747 
 2748 	* nsd/nsd.h:
 2749 	* nsd/driver.c:
 2750 	* nsd/nsmain.c:
 2751 	* nsd/server.c:
 2752 	* nsd/queue.c:  Implemented multiple named thread pools
 2753 	for virtual servers and Host header based virtual server
 2754 	selection.  See sample-config.tcl for config example.
 2755 
 2756 	* nsd/info.c: Fixed crash bug with NULL server.
 2757 
 2758 	* nsd/tclcmds.c: Removed NsTclConnCmd and NsTclServerCmd
 2759 	string commands.
 2760 
 2761 
 2762 2002-10-14  Jim Davidson <jgdavidson@aol.com>
 2763 
 2764 	* doc/install-doc (new):  New script to install and cross
 2765 	link the man pages.
 2766 
 2767 	* Makefile:
 2768 	* include/Makefile.module:  Added .PHONY targets and man
 2769 	page install target.
 2770 
 2771 	* nsd/conn.c:  Made "ns_conn copy" use Tcl_Write instead
 2772 	of Tcl_WriteChars to fix binary file upload bug.
 2773 
 2774 	* nsd/form.c:  Fixed bug where Ns_ConnGetQuery (i.e.,
 2775 	ns_conn form) could not handle binary data in multpart file
 2776 	uploads.  Also, "ns_conn files" now returns file type.
 2777 	
 2778 	* nsd/log.c:  Thread ids are now formatted as unsigned
 2779 	long.
 2780 
 2781 	* include/ns.h:
 2782 	* nsd/config.c:
 2783 	* nsd/tclinit.c:
 2784 	* nsd/tclcmd.c:
 2785 	* nsd/tclsock.c:
 2786 	* nsd/main.c:  Added support for libnsd.so to be loaded
 2787 	into a standard (thread enabled) tclsh or linked into a
 2788 	custom tclsh.  Calling Ns_TclInit from a custom tclsh or
 2789 	loading libnsd.so via the load command will add many
 2790 	non-server AOLserver commands (e.g., adds ns_set but not
 2791 	ns_adp_puts).
 2792 
 2793 	* nsd/server.c:
 2794 	* nsd/tcljob.c:  Changed ns_job command to create and queue
 2795 	jobs to named queues instead of per-server queues.
 2796 
 2797 	* nsd/tclthread.c:  Added a special Tcl address object type
 2798 	to speed access to the object id's.
 2799 
 2800 	* nsd/sched.c:  Threaded events now use a thread pool
 2801 	instead of create/delete each time.
 2802 
 2803 	* tcl/form.tcl:  Fixed bug accessing uploaded binary files
 2804 	with the ns_getform proc and added ns_getformfile proc to
 2805 	address the ".tmpfile" security issue.
 2806 
 2807 
 2808 2002-09-28  Jim Davidson <jgdavidson@aol.com>
 2809 
 2810 	* nsd/adpparse.c:
 2811 	* nsd/auth.c:
 2812 	* nsd/conn.c:
 2813 	* nsd/connio.c:
 2814 	* nsd/driver.c:
 2815 	* nsd/dstring.c:
 2816 	* nsd/filter.c:
 2817 	* nsd/init.c:
 2818 	* nsd/log.c:
 2819 	* nsd/main.c:
 2820 	* nsd/modload.c:
 2821 	* nsd/nsd.h:
 2822 	* nsd/nsmain.c:
 2823 	* nsd/queue.c:
 2824 	* nsd/return.c:
 2825 	* nsd/server.c:
 2826 	* nsd/tclenv.c:
 2827 	* nsd/tclinit.c:
 2828 	* nsd/tclthread.c:
 2829 	* include/ns.h: Added missing AOLserver 3.x API's including
 2830 	static module support, Ns_TclRegisterAt traces, connection
 2831 	I/O functions, loadable comm driver stubs, and more.
 2832 
 2833 	* configure:
 2834 	* configure.in:
 2835 	* nsd/exec.c:  Removed weird USE_PROCTHREAD code.
 2836 
 2837 	* nsd/init.tcl:  Uses "ns_ictl modules" for module list.
 2838 
 2839 	* nscgi/nscgi.c:  Uses Ns_CopyEnviron, renamed from
 2840 	Ns_GetEnvironment.
 2841 
 2842 	* Makefile:  Fixed install bug for install-sh.
 2843 	
 2844 	* README:  Updated to match AOLserver 3.5.  Various outdated
 2845 	docs removed.
 2846 
 2847 
 2848 2002-09-10  Jim Davidson <jgdavidson@aol.com>
 2849 
 2850 	* Makefile:
 2851 	* INSTALL (new):
 2852 	* aclocal.m4 (new):
 2853 	* configure (new):
 2854 	* configure.in (new):
 2855 	* include/Makefile.global (removed):
 2856 	* include/Mkaefile.global.in (new):
 2857 	* include/Makefile.module:  New autoconf-based configuration
 2858 	and build.
 2859 
 2860 	* nsd/log.c:
 2861 	* nsd/tclenv.c:  Updated to used new autoconf-based compile
 2862 	info.
 2863 
 2864 
 2865 2002-08-24  Jim Davidson <jgdavidson@aol.com>
 2866 
 2867 	* nsd/filter.c:
 2868 	* nsd/server.c:
 2869 	* nsd/tclatclose.c:
 2870 	* nsd/tclvar.c:
 2871 	* nsd/tclinit.c:
 2872 	* nsd/tcljob.c:
 2873 	* nsd/nsd.h:  Moved private struct definitions out of nsd.h
 2874 	back to files which depend on them, e.g., struct Filter.
 2875 
 2876 	* nsd/tclatclose.c:
 2877 	* nsd/tclinit.c:  Moved Ns_TclRegisterDeferred to tclinit.c.
 2878 
 2879 	* nsd/adpeval.c:
 2880 	* nsd/tclsock.c:
 2881 	* nsd/tclinitc:  Eliminated NsTclEval in favor of Tcl_EvalEx.
 2882 
 2883 	* nsd/log.c:
 2884 	* nsd/nsconf.h:
 2885 	* nsd/nsconf.c:  Removed complicated and dubious log
 2886 	buffering option.  The new ns_logctl feature can be used
 2887 	to batch noisy requests.
 2888 
 2889 	* nsd/tclinit.c:
 2890 	* nsd/tclcmds.c:
 2891 	* nsd/init.tcl:  Added new ns_init command to replace the
 2892 	nsv-based namespace copy/update mechanism.  The init.tcl
 2893 	is now called only at startup.
 2894 
 2895 	* conn.c:
 2896 	* driver.c:
 2897 	* queue.c:
 2898 	* nsd.h:  Connection times and timeouts now maintained with
 2899 	Ns_Time-based microsecond resolution.
 2900 
 2901 2002-07-14  Jim Davidson <jgdavidson@aol.com>
 2902 
 2903 	* nsd/log.c:
 2904 	* nsd/tclcmds.c:  Added the ns_logctl command with options
 2905 	to hold, release, flush, etc. the log messages in a thread.
 2906 
 2907 	* nsd/adpcmds.c:
 2908 	* nsd/urlopen.c:  Switched to more object-correct
 2909 	Tcl_ObjSetVar2.
 2910 
 2911 2002-07-08  Jim Davidson <jgdavidson@aol.com>
 2912 
 2913 	* nsd/tclthread.c:  Cleaned up the object-based commands
 2914 	by collecting common argument and new object allocation
 2915 	code into single GetArgs function.
 2916 
 2917 2002-07-07  Jim Davidson <jgdavidson@aol.com>
 2918 
 2919 	* nsd/tclvar.c:  Removed string commands because it was
 2920 	messy maintaining both.
 2921 
 2922 	* nsd/info.c:
 2923 	* nsd/queue.c:
 2924 	* nsd/tclcmds.c:
 2925 	* nsd/tclset.c:  Added object commands.
 2926 
 2927 	* nsd/tclobj.c:
 2928 	* nsd/tclmisc.c:  Updated Ns_Time type code to handle simple
 2929 	single-integer times without microsecond resolution.
 2930 
 2931 	* include/ns.h:
 2932 	* include/Makefile.global:
 2933 	* Makefile:  Updated for AOLserver beta4 release to coincide
 2934 	with Tcl beta1 release.
 2935 
 2936 	Otherwise, minor edits to new object commands in several
 2937 	places.
 2938 	
 2939 2002-07-05  Jim Davidson <jgdavidson@aol.com>
 2940 
 2941 	* nsd/nsd.h:
 2942 	* nsd/adpcmds.c:
 2943 	* nsd/adpeval.c:
 2944 	* nsd/adprequest.c:
 2945 	* nsd/tclcmds.c:  Updated remaining ADP commands to be
 2946 	object-based.  Because the NsInterp->adp struct now uses
 2947 	Tcl_Obj's for call frame args, the string commands were
 2948 	just dumped.
 2949 
 2950 2002-06-25  Scott S. Goodwin <scott@scottg.net>
 2951 
 2952 	* nsd/tclvar.c:
 2953 	* nsd/tclcmds.c: Reimplemented nsv commands as object commands.
 2954 
 2955 2002-06-19  Jim Davidson <jgdavidson@aol.com>
 2956 
 2957 	* include/ns.h:
 2958 	* nsd/tclinit.c:  Added new Ns_TclCreateInterp() which
 2959 	creates and initializes interps for server and non-server
 2960 	interps (e.g., the config interp).  Interps are now
 2961 	initialized with a call to Tcl_Init() which enables the
 2962 	standard Tcl library procedures (e.g., unknown, http::,
 2963 	etc.).
 2964 
 2965 	* nsd/tclthread.c:
 2966 	* nsd/tclcmds.c:  Thread and cache related commands no
 2967 	longer require a server, exposing them in any interp created
 2968 	with Ns_TclCreateInterp.
 2969 	
 2970 	* nsd/server.c:  NsGetServer handles NULL server.
 2971 
 2972 	In general, the changes above are steps towards making the
 2973 	AOLserver API's more useful outside the context of a server.
 2974 	The idea is to enable use of libnsd for other applications,
 2975 	e.g., shells interps.
 2976 
 2977 2002-06-12  Jeremy Collins <jeremy.collins@phpsource.net>
 2978 
 2979 	* nsd/conn.c:
 2980 	* nsd/tclcmds.c: Reimplemented "ns_conn" as an obj based
 2981 	command.  In the process I also modified NsTclConnObjCmd to use
 2982 	Tcl_GetIndexFromObj.  This should improve performance as well as
 2983 	the readability of the code.
 2984 
 2985 	* nsd/auth.c:
 2986 	* nsd/form.c:
 2987 	* nsd/httptime.c:
 2988 	* nsd/log.c:
 2989 	* nsd/mimetypes.c:
 2990 	* nsd/nsmain.c:
 2991 	* nsd/pathname.c:
 2992 	* nsd/random.c:
 2993 	* nsd/tclatclose.c:
 2994 	* nsd/tclfile.c:
 2995 	* nsd/tclhttp.c:
 2996 	* nsd/tclimg.c:
 2997 	* nsd/tclinit.c:
 2998 	* nsd/tclmisc.c:
 2999 	* nsd/tclrequest.c:
 3000 	* nsd/tclresp.c:
 3001 	* nsd/tclsock.c:
 3002 	* nsd/tclthread.c:
 3003 	* nsd/urlencode.c:
 3004 	* nsd/urlopen.c: Cleaned up the way we were setting the result
 3005 	on tcl errors.
 3006 
 3007 2002-06-12  Jim Davidson <jgdavidson@aol.com>
 3008 	
 3009 	* include/nsthread.h:
 3010 	* nsthread/mutex.c:
 3011 	* nsthread/thread.c:
 3012 	* nsd/info.c:  Rename Ns_MutexEnum and Ns_ThreadEnum to
 3013 	Ns_MutexList and Ns_ThreadList to not conflict with pre-4.0
 3014 	definitions of removed functions.
 3015 
 3016 	* nsthread/Makefile
 3017 	* nsthread/nshtreadtest.c (new file):  Added simple program
 3018 	to test thread interface.
 3019 
 3020 	* nsthread/thread.h:
 3021 	* nsthread/cslock.c:
 3022 	* nsthread/rwlock.c:  Added new NsMutexInitNext function
 3023 	to consistantly name mutexes in internal objects.
 3024 
 3025 	* nsthread/sema.c:  Restored AOLserver 3.x implementation
 3026 	using Ns_Mutex and Ns_Cond objects.  The API's in <semaphore.h>
 3027 	were not implemented on OS/X.
 3028 
 3029 2002-06-10  Jim Davidson <jgdavidson@aol.com>
 3030 
 3031 	* include/Makefile.global:
 3032 	* include/Makefile.module:  Added support for dynamic
 3033 	library init procs set via the LIBINIT make variable.
 3034 
 3035 	* Makefile: 
 3036 	* nsthread/compat.c:
 3037 	* nsthread/cond.c:
 3038 	* nsthread/cslock.c
 3039 	* nsthread/error.c:
 3040 	* nsthread/fork.c:
 3041 	* nsthread/master.c:
 3042 	* nsthread/memory.c:
 3043 	* nsthread/mutex.c:
 3044 	* nsthread/osxcompat.c:
 3045 	* nsthread/osxcompat.h:
 3046 	* nsthread/reentrant.c:
 3047 	* nsthread/rwlock.c:
 3048 	* nsthread/sema.c:
 3049 	* nsthread/signal.c:
 3050 	* nsthread/thread.c:
 3051 	* nsthread/thread.h (new file):
 3052 	* nsthread/time.c:
 3053 	* nsthread/tls.c:  Moved from nsd as separate nsthread
 3054 	library.
 3055 
 3056 	* include/ns.h:
 3057 	* include/nsthread.h:  Include of tcl.h moved to nsthread.h
 3058 	from ns.h.
 3059 
 3060 	* nsd/Makefile
 3061 	* nsd/init.c (new file):
 3062 	* nsd/binder.c:
 3063 	* nsd/cache.c:
 3064 	* nsd/config.c:
 3065 	* nsd/encoding.c:
 3066 	* nsd/exec.c:
 3067 	* nsd/info.c:
 3068 	* nsd/listen.c:
 3069 	* nsd/log.c:
 3070 	* nsd/mimetypes.c:
 3071 	* nsd/modload.c:
 3072 	* nsd/nsd.h:
 3073 	* nsd/nsmain.c:
 3074 	* nsd/nsconf.c:
 3075 	* nsd/proc.c:
 3076 	* nsd/sched.c:
 3077 	* nsd/server.c:
 3078 	* nsd/tclinit.c:
 3079 	* nsd/urlspace.c:  Various runtime initializations collected
 3080 	into dynamic library load time init via NsdInit in init.c.
 3081 
 3082 2002-06-08  Jim Davidson <jgdavidson@aol.com>
 3083 
 3084 	* include/Makefile.global
 3085 	* include/Makefile.module:  Support for building programs
 3086 	along with dynamic libraries and modules.  Also, fixed bug
 3087 	setting -install_name on OS/X.
 3088 
 3089 	* nsd/Makefile:  Use of updated Makefile.module and include
 3090 	osxcompat.o on OS/X.
 3091 
 3092 	* nsd/nsd.h:
 3093 	* nsd/osxcompat.h:
 3094 	* nsd/osxcompat.c:  Compat functions moved from ../nsosx.
 3095 
 3096 	* nsosx/README (removed):
 3097 	* nsosx/Makefile (removed):
 3098 	* nsosx/nsosx.c (removed):  Tcl no longer requires any
 3099 	compat functions, remainder moved into nsd.
 3100 
 3101 	Otherwise, minor tweaks throughout to silence compiler
 3102 	warnings.
 3103 
 3104 2002-06-05  Jim Davidson <jgdavidson@aol.com>
 3105 
 3106 	* Makefile:
 3107 	* include/Makefile.global:  Added tclmemdbg flag to compile
 3108 	Tcl and AOLserver with TCL_MEM_DEBUG option.
 3109 
 3110 	* nsd/unix.o:
 3111 	* nsosx/README (new file):
 3112 	* nsosx/Makefile (new file):
 3113 	* nsosx/nsosx.o (new file):  Hacks for Apple OS/X removed
 3114 	from nsd/unix.o and moved to nsosx.o as a Tcl compat object.
 3115 	See README for instructions.
 3116 
 3117 	* nsd/nsd.h:
 3118 	* nsd/server.c:
 3119 	* nsd/adpparse.c:
 3120 	* nsd/adpcmds.c:
 3121 	* nsd/adpeval.c:  Added support for new ns_adp_safeeval
 3122 	and ns_adp_registerproc commands. Also, registered tags
 3123 	can now be modified after startup.
 3124 
 3125 	* include/Makefile.module:  Updated to allow building of
 3126 	dynamic library of public routines to go with dynamic
 3127 	module, e.g., libnsdb.so with nsdb.so.
 3128 
 3129 	* nsext/Makefile:
 3130 	* nspd/Makefile:
 3131 	* nspd/msg.c (removed):
 3132 	* nsext/msg.c (moved from nspd):  Moved Ns_Ext API from
 3133 	libnspd.a static library to libnsext.so dynamic library as
 3134 	it's used by both nsext.so and proxy drivers.
 3135 
 3136 	* nsdb/Makefile:
 3137 	* nsdb/nsext.c (new file):  Moved public API for nsdb out
 3138 	of nsdb.so module and into libnsdb.so dynamic library.
 3139 
 3140 2002-05-15  Jim Davidson <jgdavidson@aol.com>
 3141 
 3142 	* Makefile:
 3143 	* include/Makefile.global:
 3144 	* tcl8.3.4 (removed):  As of Tcl version 8.4., no modifications
 3145 	to the Tcl sources are required for AOLserver.  Therefore,
 3146 	the hacked 8.3.4 sources have been removed.  Going forward
 3147 	you'll need to checkout the Tcl source from Sourceforge
 3148 	into the directory specified in include/Makefile.global
 3149 	(currently ../tcl8.4).  The top level Makefile includes
 3150 	the "tcl-checkout" and "tcl-update" targets which should
 3151 	help.
 3152 	
 3153 	* include/ns.h:
 3154 	* nsd/server.c:
 3155 	* nsd/nsd.h:
 3156 	* nsd/tclcmds.c:
 3157 	* nsd/tclinit.c:
 3158 	* nsd/init.tcl:
 3159 	* nsd/dbdrv.c (removed):
 3160 	* nsd/dbinit.c (removed):
 3161 	* nsd/dbtcl.c (removed):
 3162 	* nsd/dbutil.c (removed):
 3163 	* nsdb/dbinit.c (new):
 3164 	* nsdb/dbdrv.c (new):
 3165 	* nsdb/dbtcl.c (new):
 3166 	* nsdb/dbutil.c (new):
 3167 	* include/nsdb.h (new):  Moved the NsDb interface from core
 3168 	to new nsdb module.  Simply loading nsdb.so should work as
 3169 	before.  Goal is to enable full replacement of NsDb in the
 3170 	future.
 3171 
 3172 	* nsd/cache.c:
 3173 	* nsd/callbacks.c:
 3174 	* nsd/listen.c:
 3175 	* nsd/nsconf.c:
 3176 	* nsd/op.c:
 3177 	* nsd/sched.c:
 3178 	* nsd/server.c:
 3179 	* nsd/sockcallback.c:
 3180 	* nsd/urlspace.c:
 3181 	* nsext/nsext.c:
 3182 	* nslog/nslog.c:
 3183 	* nslog/nslog.c:  Simple mutex name updates.
 3184 
 3185 	* nscgi/nscgi.c:  Minor bug fixes
 3186 
 3187 	* nsd/adpeval.c:  Fixed read of freed data.
 3188 
 3189 	* nsd/tclinit.c:  Fixed crash bug of null interp delete.
 3190 
 3191 	* nsd/exec.c:
 3192 	* include/Makefile.global:  Support for process manager
 3193 	thread enabled with -DUSE_PROCTHREAD to route all process
 3194 	create/wait through a single thread for Linux threads.
 3195 
 3196 2002-02-24  Jim Davidson <jgdavidson@aol.com>
 3197 
 3198 	* nsd/nsd.h
 3199 	* nsd/unix.c:
 3200 	* tcl8.3.4/unix/tclLoadDyld.c: Hacks for routines missing
 3201 	from OS/X. The implementation of sigwait() is not strictly
 3202 	correct but appears good enough for AOLserver's use.
 3203 
 3204 	* Makefile:
 3205 	* nsd/Makefile:
 3206 	* nsmain/Makefile:
 3207 	* include/Makefile.global:
 3208 	* include/Makefile.module:
 3209 	* include/Makefile.library (removed): Updates for linking
 3210 	modules against the nsd shared library and for library
 3211 	filenames which don't end in .so.
 3212 
 3213 	* nsext/Makefile
 3214 	* nspd/Makefile: Moved proxy message code from nsext to
 3215 	nspd, now a static library.
 3216 
 3217 	* nsd/main.c:
 3218 	* nsd/init.c:
 3219 	* nsd/Makefile:
 3220 	* nsmain/*:
 3221 	* sample-config.tcl:
 3222 	* tcl2ini.tcl:
 3223 	* ini2tcl.tcl:
 3224 	* Makefile: Moved build and install of nsd and init.tcl
 3225 	into nsd directory and install of sample config to top
 3226 	level Makefile.  Added tcl2ini.tcl and ini2tcl.tcl config
 3227 	file utilities.
 3228 
 3229 2002-02-07  Jeff Hobbs  <jeffh@ActiveState.com>
 3230 
 3231 	* nsmain/init.tcl:
 3232 	* nsmain/sample-config.tcl:
 3233 	* nsssl/keygen.tcl:
 3234 	* tcl/debug.tcl:
 3235 	* tcl/fastpath.tcl:
 3236 	* tcl/file.tcl:
 3237 	* tcl/form.tcl:
 3238 	* tcl/http.tcl:
 3239 	* tcl/nsdb.tcl:
 3240 	* tcl/sendmail.tcl:
 3241 	* tcl/util.tcl: code cleanup to brace exprs and fix indentation
 3242 
 3243 2001-12-05  Jim Davidson <jgdavidson@aol.com>
 3244 
 3245 	* nsd/tclthread:  Tcl threads now return their string result
 3246 	via ns_thread wait.
 3247 
 3248 2001-12-20  Scott S. Goodwin  <scott@scottg.net>
 3249 
 3250 	* include/Makefile.library: Changed RFLAG to RPATH, and took out
 3251 	$(AOLSERVER)/lib:
 3252 	
 3253 	  $(LDSO) -o $(LIB) $(OBJS) $(LIBS) $(RFLAG) $(AOLSERVER)/lib
 3254 
 3255 	now reads:
 3256 	
 3257 	  $(LDSO) -o $(LIB) $(OBJS) $(LIBS) $(RPATH)
 3258 
 3259 	which is what I think was intended. Still have the problem
 3260 	that $(AOLSERVER)/lib must already exist.
 3261 
 3262 2001-11-05  Jim Davidson <jgdavidson@aol.com>
 3263 
 3264 	* Removed support for Win32, removing both the build/test
 3265 	environment and updating the code to be standard Unix style.
 3266 	Among other style changes such as changing SOCKET's to
 3267 	simple Unix style int's, the short lived Ns_Buf structure
 3268 	was also eliminated in favor of the Unix standard struct
 3269 	iovec.
 3270 
 3271 	* Removed support for older non-pthread Unix platforms such
 3272 	as HP/10 and SGI native.
 3273 
 3274 	* Updated Tcl to version to Tcl 8.3.4, replacing tclAlloc.c
 3275 	with a modified version of what was libnsthread's fast pool
 3276 	allocator including support for fast direct Tcl_Obj
 3277 	allocation.  Also added a few functions to tclUnixThrd.c
 3278 	for thread safety (e.g., readdir_r and localtime_r support)
 3279 	and fixed up tcl.m4 for better FreeBSD 4.4 and Solaris
 3280 	thread builds.
 3281 
 3282 	* ns_malloc, Ns_ThreadMalloc, and Ns_PoolAlloc all now
 3283 	simply call Tcl_Alloc which is always enabled. The previous
 3284 	-z (enable) and -p (disable) command line flags are ignored.
 3285 
 3286 	* Integrated remainder of libnsthread, now standard pthreads
 3287 	and compatible with Tcl pthread code, into libnsd.so.
 3288 
 3289 	* Updated libnsd.so to use poll() instead of select() where
 3290 	possible.
 3291 
 3292 	* Removed the code which would attempt to determine when
 3293 	the sock callbacks and scheduler were idle before completing
 3294 	startup.  The code was overly complex and not strictly
 3295 	correct.
 3296 
 3297 	* Removed the -k and -K shutdown/restart options which was
 3298 	not entirely safe.
 3299 
 3300 	* Removed the child-process privleged port Ns_SockListen
 3301 	code in nsd/binder.c.  Binding privleged ports (e.g., port
 3302 	80) now requires the -b or -B command line methods introduced
 3303 	in 3.4, e.g., "nsd -ft nsd.tcl -b myhost:80".  The binder
 3304 	code, while clever, was a potential security risk.
 3305 
 3306 	* Cleaned up some lingering sloppy uses of Ns_ConfigGet
 3307 	and other older macros.  Old macro and function definitions
 3308 	can be disabled by defining NS_NOCOMPAT as is done when
 3309 	compiling the core server and modules.
 3310 
 3311 	* Incremented version to 4.0b2.
 3312 
 3313 2001-08-29  Scott S. Goodwin  <scott@scottg.net>
 3314 
 3315 	* https.tcl: made fixes to ns_httppost per Rick Lansky at
 3316 	bom.com. He also suggested I allow the Content-type to be
 3317 	passed in as a parameter, so I've added that too.
 3318 
 3319 2001-08-27  Scott S. Goodwin  <scott@scottg.net>
 3320 
 3321 	* https.tcl: added ns_httppost, that is called with url,
 3322 	rqset, qsset and timeout. The qsset is an ns_set with
 3323 	key/values that will be turned into user=scottg&pass=1234,
 3324 	for example, and passed as content in the POST.
 3325 
 3326 2001-08-17  Scott S. Goodwin  <scott@scottg.net>
 3327 
 3328 	* tcl/http.tcl: moved rqset to be the last arg passed to
 3329 	ns_httpget so it wouldn't break existing code. I should
 3330 	have done it that way in the first place.
 3331 
 3332 2001-08-15  Scott S. Goodwin  <scott@scottg.net>
 3333 
 3334 	* tcl/http.tcl: add the rqset param as the second argument to
 3335 	ns_httpget, which in turn calls ns_httpsopen and passes the rqset
 3336 	to it. The change is for consistency so that you can use cookies
 3337 	with ns_httpget as well.
 3338 
 3339 2001-07-16  Scott S. Goodwin  <scott@scottg.net>
 3340 
 3341 	* tcl/http.tcl: you can now do ns_httpopen GET /index.html;
 3342 	the script will automatically prepend http://hostname:port/
 3343 	to the url.
 3344 
 3345 2001-06-30  Dossy Shiobara  <scott@scottg.net>
 3346 
 3347 	* nsd/conn.c, tests/api/ns_conn.adp: fixed ns_conn
 3348 	outputheaders as per bug #433676 submitted by Yon Derek
 3349 	(yond).
 3350 
 3351 2001-05-22  Scott S. Goodwin  <scott@scottg.net>
 3352 
 3353 	* nsd/conn.c: changed Ns_ConnDriverContext in 4.x to return
 3354 	the actual conn-specific, module-specific context back,
 3355 	which is how it works in 3.x. For some reason this API call
 3356 	was changed to always return NULL, but nsopenssl and
 3357 	potentially other comm drivers need to get their conn-specific
 3358 	info back.
 3359 
 3360 2001-04-25  Dossy Shiobara  <dossy@panoptic.com>
 3361 
 3362 	* Implemented [ns_localtime ?tz?] as per "[ #418890 ]
 3363 	ns_localtime should accept timezone".
 3364 
 3365 2001-03-15  Dossy Shiobara  <dossy@panoptic.com>
 3366 
 3367 	* include/Makefile.win32 win32/*/Makefile: initial attempts
 3368 	at Makefiles suitable for NMAKE for building on Win32
 3369 
 3370 	* include/ns.h: define typedef __int64 INT64 for Win32
 3371 
 3372 2001-03-12  Scott S. Goodwin  <scott@scottg.net>
 3373 
 3374 	* nsmain.c: Segmentation fault when using -g <group> flag:
 3375 	line 294 should read Ns_GetGid(garg) instead of Ns_GetGid(optarg).
 3376 
 3377 2001-03-12 Jim Davidson
 3378 
 3379 	Initial checkin of AOLserver 4.0 (beta), now supporting
 3380 	vitual servers and (finally) removing supporting for Tcl
 3381 	7.6.
 3382 	
 3383 2001-03-08  Kris Rehberg
 3384 
 3385 	*** AOLserver 3.3 RELEASED ***
 3386 
 3387 2001-03-08 Jim Davidson
 3388 
 3389 	* Added NsTclFinalizeThread() at end of Tcl TLS cleanup to
 3390 	finalize Tcl 8.x thread data.  This fix was the last hurdle
 3391 	for finalizing nsd8x.
 3392 
 3393 2001-01-31  Kris Rehberg 
 3394 
 3395 	* Makefile (MODULES): nsunix, nsvhr, and nsodbc moved to
 3396 	the Module Collection.
 3397 
 3398 2001-01-16  Jim Davidson
 3399 
 3400 	* Cleaned up sloppy use of the nsServer global wherever
 3401 	it's used.
 3402 
 3403 2001-01-04  Kris Rehberg 
 3404 
 3405 	* nsd/tclmisc.c: Ticket 13090.  ns_striphtml crashing-bug
 3406 	in nsd8x fixed.
 3407 
 3408 2000-12-14  Kris Rehberg 
 3409 
 3410 	* tcl/http.tcl: Corrected typo _ns_ns_http_readable.
 3411 
 3412 	* nsd/dstring.c (Ns_DStringPrintf): Ticket 12765.
 3413 	Ns_DStringPrintf uses vsnprintf instead of vsprintf with
 3414 	specified buffer size.  Thanks to "??".
 3415 
 3416 	* nsd/return.c (Ns_ConnConstructHeaders): Ticket 12764.
 3417 	If-Modified-Since (304) works with keepalive now. Thanks
 3418 	to Jim "??".
 3419 
 3420 2000-12-13  Kris Rehberg 
 3421 
 3422 	* include/Makefile.global: Builds with architecture-specific
 3423 	optimization options. Auto-detects architecture for most
 3424 	platforms.  Auto-select compiler and Purify usage from
 3425 	command line, e.g.:
 3426 	gmake nativeme=1   (all non-free Unix)
 3427 	gmake gccme=1      (some non-free Unix) gmake
 3428 	PURIFY=/path/to/purify/executable  (Solaris and Irix only)
 3429 
 3430 	* nssock/Makefile*: now installs The Right Things in The
 3431 	Right Places.
 3432 
 3433 	* nsd/Makefile: nsd8x is the default AOLserver now (nsd
 3434 	symlinks to nsd8x).
 3435 
 3436 	* nsd/sample-config.tcl: Added some tuning parameters for
 3437 	easy reference.
 3438 
 3439 2000-12-12  Kris Rehberg 
 3440 
 3441 	* nsvhr/nsvhr.c (UDSProxy): More type changes.
 3442 
 3443 	* nslog/nslog.c (Ns_ModuleInit): pointer-to-function casted.
 3444 
 3445 	* nscp/nscp.c (GetLine): buf changed to char *; casted
 3446 	AcceptProc.
 3447 	
 3448 2000-12-12  Jim Davidson
 3449 
 3450 	* nssock/sock.cpp: Fixed multiple-load problems, added
 3451 	sndbuf, rcvbuf, sendwait, and recvwait options. Added
 3452 	configurable backlog via Ns_SockListenEx. Fixed compile
 3453 	bugs for ssl. Restructured the socket module to wait in
 3454 	server busy situations instead of sending the server busy
 3455 	message.  Also, moved the graceful close burden to the
 3456 	SockThread from the connection thread.
 3457 
 3458 	* thread/win32.cpp: Moved WinThread allocation to DllMain,
 3459 	eliminating GetWinThread function. Also, disabled thread
 3460 	cleanup for final thread to avoid any TLS cleanup callbacks
 3461 	attempting to invoke code in unloaded libraries like Tcl.
 3462 	Removed call to NsInitThread no longer needed. Switched to
 3463 	rolling condition broadcast wakeup as in the sproc code.
 3464 	More fixes for new Thread context model.
 3465 	
 3466 	* thread/tls.c: Changed NsLock API's to return 1/0 instead
 3467 	of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep
 3468 	things simple.
 3469 
 3470 	* thread/thread.c: Changed thread enum to return Ns_Thread,
 3471 	not Ns_Thread pointer which didn't make much sense.  Updated
 3472 	"ns_info pools" command to reflect change. Fixed bugs with
 3473 	Ns_ThreadEnum and pool counters. Update of the Ns_Pool API
 3474 	to support more stats gathering available via new Ns_PoolStats
 3475 	API. Remove Thread->etime and NsPool API's. Moved sprintf
 3476 	of default thread name from NsThreadMain to NsInitThread
 3477 	under protection of threads lock. Added comment for
 3478 	NsInitThread. More fixes for new Thread context model.
 3479 	Updated sproc.cpp code for new Thread management and removed
 3480 	the wait for thread startup which shouldn't be needed.
 3481 
 3482 	* thread/test.c: Cleaned up code a bit to quiet compiler.
 3483 	Better test for PTHREAD_TEST.  Fixed undefined var bug for
 3484 	sproc.  Added some comments, a native pthread test, and a
 3485 	recursive stack checker.
 3486 
 3487 	* thread/tcl8x.c: Added Tcl_JoinThread for benefit of
 3488 	Tcl8.4.
 3489 
 3490 	* thread/sproc.cpp: Changed NsLock API's to return 1/0
 3491 	instead of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock
 3492 	to keep things simple. Fixed some comment bugs, update
 3493 	thrPtr->tid after fork. Added call the NsInitThread. Updated
 3494 	sproc.cpp code for new Thread management and removed the
 3495 	wait for thread startup which shouldn't be needed.
 3496 
 3497 	* thread/pthread.cpp: Changed NsLock API's to return 1/0
 3498 	instead of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock
 3499 	to keep things simple. Fixed bug of not setting the tid
 3500 	correctly. Added call the NsInitThread.
 3501 
 3502 	* thread/pool.c: Added Ns_PoolEnum to get at pool stats as
 3503 	with mutexes and threads, removing the old Ns_PoolStats
 3504 	API's and updating the "ns_info pools" command. Fixed bugs
 3505 	with Ns_ThreadEnum and pool counters. Update of the Ns_Pool
 3506 	API to support more stats gathering available via new
 3507 	Ns_PoolStats API. Removed <mutex.h> for sgi which shouldn't
 3508 	have been there. Removed the sbrk() code for now, was
 3509 	crashing SGI (probably not thread safe). Use sbrk() on Unix
 3510 	instead of malloc to avoid any malloc overhead or contention.
 3511 	Reduced the zippy allocator page size to 16k from 64k.
 3512 
 3513 	* thread/pool.c, thread.c, sproc.cpp: Re-structured management
 3514 	of the Thread context to better support threads created
 3515 	without Ns_ThreadCreate (e.g., Java VM threads).
 3516 	
 3517 	* thread/mutex.c: Changed NsLock API's to return 1/0 instead
 3518 	of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep
 3519 	things simple.
 3520 
 3521 	* thread/cs.c, memory.c, mutex.c, pool.c, pthread.cpp,
 3522 	reentrant.c, rwlock.c, sema.c, sproc.cpp, tcl8x.c, test.c,
 3523 	thread.c, win32.cpp: Restructured the thread interfaces,
 3524 	moving the master lock to the platform interface code,
 3525 	integrating the zippy allocator with Ns_Pool/Ns_ThreadAlloc
 3526 	and use of a new simple direct allocator for all thread
 3527 	objects.
 3528 
 3529 	* win32/nsthread/nsthread.dsp: Removed master.c and
 3530 	oldpools.c.
 3531 
 3532 	* nsd/unix.c: Made ns_eval command disabled by default to
 3533 	avoid using SIGUSR2.
 3534 
 3535 	* nsd/tclthread.c: Changed SETOBJ macro to SetObj function
 3536 	which no longer sprintf's directly into interp->result.
 3537 
 3538 	* nsd/tclmisc.c: Added Ns_PoolEnum to get at pool stats as
 3539 	with mutexes and threads, removing the old Ns_PoolStats
 3540 	API's and updating the "ns_info pools" command. Changed
 3541 	thread enum to return Ns_Thread, not Ns_Thread pointer
 3542 	which didn't make much sense.  Updated "ns_info pools"
 3543 	command to reflect change.  Added more info for "ns_info
 3544 	pools".  Added "ns_info pools" command to dump memory pool
 3545 	stats.
 3546 	
 3547 	* nsd/tclinit.c: Added nsconf.quiet and nsconf.startuptimeout.
 3548 	Made ns_eval command disabled by default to avoid using
 3549 	SIGUSR2.  Added nsConfQuiet flag to quiet down the startup
 3550 	messages with the -q flag.
 3551 
 3552 	* nsd/sock.c: Added Ns_SockListenEx.
 3553 
 3554 	* nsd/serv.c: Ensured the conn thread name was set first.
 3555 	Added Ns_RegisterAtReady callbacks for indicating server
 3556 	no longer busy.
 3557 
 3558 	* nsd/sched.c, nsmain.c, serv.c, sockcallback.c: Added code
 3559 	to wait for conn thread, sock callback, and sched idle at
 3560 	startup to help alleviate code start problems.
 3561 
 3562 	* nsd/nsmain.c: Shuffled initialization to ensure command
 3563 	line args are read before calling any Ns API's, ensuring
 3564 	zippy malloc can be set if needed.
 3565 
 3566 	* nsd/nsconf.c: Added nsconf.quiet and nsconf.startuptimeout.
 3567 	Made ns_eval command disabled by default to avoid using
 3568 	SIGUSR2.
 3569 
 3570 	* nsd/dstring.c: Remove unused vars.  Uses ns_realloc to
 3571 	grow strings and maintains dstring stack in the staticSpace
 3572 	instead of the *addr pointer for compatibility with Tcl
 3573 	dstrings.
 3574 
 3575 	* nsd/callbacks.c: Added Ns_RegisterAtReady callbacks for
 3576 	indicating server no longer busy.
 3577 
 3578 	* nsd/binder.c: Added Ns_SockListenEx.
 3579 
 3580 2000-12-12  Kris Rehberg 
 3581 	
 3582 	* nsvhr/nsvhr.c (VHRProc): Matches hostnames regardless of
 3583 	case.
 3584 
 3585 	* nssock: Supports Rainbow CryptoSwift SSL accelerators
 3586 	(compile-time option; requires the Swift SDK from
 3587 	http://www.rainbow.com/).
 3588 
 3589 	* nsd/nsmain.c (Ns_Main): Changed order of some config
 3590 	default initialization.  Config options cleaned up a lot.
 3591 	Usage message very less glib.  SUNWspro dumped core on
 3592 	usage message due to nsconf.argv0 quigglyness.
 3593 	
 3594 2000-10-20  Kris Rehberg 
 3595 
 3596 	*** AOLserver 3.2 RELEASED ***
 3597 
 3598 2000-10-20  Jim Davidson
 3599 
 3600 	* win/tclWinSock.c: Fixed deadlock in sockets init code.
 3601 
 3602 	* nsd/nswin32.c: Fixed service install code to allow long
 3603 	pathnames with spaces.  Added/use ns_pipe which set's
 3604 	close-on-exec like ns_sockpair.
 3605 	
 3606 
 3607 2000-10-17  Kris Rehberg 
 3608 
 3609 	* nssock/sock.cpp: extra padding on Server Busy message to
 3610 	defeat MSIE friendly error messages.
 3611 
 3612 	* nsd/nsconf.h: All configuration option defaults have been
 3613 	moved to nsconf.h as #defines.
 3614 
 3615 	* Makefile (install): Tcl library for nsd8x is now installed
 3616 	into $(PREFIX)/lib/tcl8.3.
 3617 
 3618 	* tcl/http.tcl (ns_httpopen): Host:port is now sent to
 3619 	remote host if != 80.  Suggested by Jerry Asher.
 3620 
 3621 	* tcl/fastpath.tcl (_ns_dirlist): All kinds of Win32
 3622 	pathnames should now be working.  Thanks to Eric Klein.
 3623 
 3624 	* nsd/return.c (Ns_ConnReturnNotice): New options
 3625 	"errorminsize", to pad error messages to defeat MSIE friendly
 3626 	errors (fix suggested by ArsDigita) and "noticedetail" to
 3627 	return more detailed information on notice pages.
 3628 
 3629 	* nslog/nslog.c: suppressquery option added to suppress
 3630 	logging of query data.
 3631 
 3632 	* nslog/nslog.c: LogExtendedHEaders option added.  Contributed
 3633 	by ArsDigita.
 3634 
 3635 
 3636 	* nsd/tclfile.c: Input string to mktemp is copied, because
 3637 	mktemp edits the string in-place and that's generally a
 3638 	bad thing to do with argv's.  Contributed by ArsDigita.
 3639 
 3640 	* nsd/tclnsshare.cpp (ShareTraceProc): Patch to tclnsshare.cpp
 3641 	to avoid race conditions if the shared value is a list.
 3642 	Contributed by ArsDigita.
 3643 
 3644 	* tcl/http.tcl (ns_httpopen): CRLF now returned in ns_httpopen.
 3645 	Contributed by ArsDigita.
 3646 
 3647 	* tcl8.3.2/generic/tclCmdIL.c: Nonsense case of lsorting
 3648 	a list with length <= 0 caused a memory leak.  Fixed.
 3649 	Contributed by ArsDigita.
 3650 	
 3651 	* nsd/adpfancy.c: We now use the Arsdigita version of
 3652 	adpfancy.  Contributed by ArsDigita.
 3653 	
 3654 	* nsd/adp.c: Sundry ArsDigita changes.
 3655 
 3656 2000-10-16  Kris Rehberg 
 3657 
 3658 	* tcl/init.tcl:  Initialize errorCode and errorInfo like
 3659 	tclsh does.  From ArsDigita.
 3660 
 3661 	* nsd/nsd.h, nsd/tclcmds.c, nsd/tclvar.c: nsv_names Tcl
 3662 	command lists names of nsv's in memory.
 3663 
 3664 	* tcl8.3.2: The complete Tcl 8.x distributions are now
 3665 	included.  They aren't installed with AOLserver's "gmake
 3666 	install", but you can install them manually if you want to
 3667 	use them for the i18n encodings and stuff like that.  It
 3668 	will install into the "lib/tcl8.3" directory of the binary
 3669 	distribution with AOLserver 3.3 and later.
 3670 
 3671 	* nsd/nsmain.c (Ns_Main): Had to move Ns_ThreadSetName
 3672 	below the stdin/stdout/stderr reassignment to fix a fd
 3673 	problem with running nsd on Irix in "installed" or "daemon"
 3674 	mode that would prevent the server from starting up.  Sigh.
 3675 	(Ns_Main): Took out little note about -k|-K being deprecated.
 3676 
 3677 2000-10-13  Kris Rehberg 
 3678 
 3679 	* nsd/nsmain.c (Ns_Main): gid of the specified user is set even if
 3680 	it's not specified.
 3681 	(UsageError): -K and -k give a "deprecated" warning.
 3682 	(Ns_Main): -f gives a "deprecated" warning.
 3683 
 3684 	* nsd/binder.c (PreBind): Didn't really tell us if it was
 3685 	successful at pre-binding.  Helpful to know if you're
 3686 	wondering what happened to that port you wanted to pre-bind.
 3687 	(Binder): backlog variables (2) initialized to nsconf.backlog.
 3688 
 3689 	* nssock/sock.cpp, nsd/return.c: Made an attempt at
 3690 	standardizing the error codes and error page content.
 3691 	
 3692 2000-10-13  Jim Davidson
 3693 	
 3694 	* sproc.cpp: Fixed Wakeup() error message and update child's
 3695 	sproc pid after fork.
 3696 
 3697 	* nsd/random.c: Put back log message when generating seeds.
 3698 
 3699 	* nsd/nsconf.c: Fixed memory overwrite bug in stats and
 3700 	increased the default buffer value.
 3701 
 3702 	* nsd/keepalive.c: Fixed array overwrite with maxkeep=0
 3703 	bug.  Contributed by ArsDigita.
 3704 	
 3705 	* nsd/tclkeylist.c: A more modern version added that's
 3706 	compatible with Tcl 8.3.2 (nsd8x).
 3707 
 3708 	* nsd/stamp.c: Forces the build date reported by AOLserver
 3709 	to be absolutely the last possible moment before the link
 3710 	step happens, not just the last time nsmain.c was built.
 3711 
 3712 	* nsd/binder.c: New option "-b" to prebind ports as root
 3713 	(but not listen on them).  This allows AOLserver to start
 3714 	up on MacOS X on ports 80 and 443 like this:  "nsd ..blah..
 3715 	-b 10.0.0.1:80".
 3716 
 3717 	* nssock/: Building nsssl is much less of a debacle and
 3718 	doesn't rebuild itself three times anymore.
 3719 
 3720 	* various: fork() calls in all kinds of code were changed
 3721 	to use ns_fork.  ns_fork now lives in the thread library
 3722 	(thread/ directory).
 3723 
 3724 	* tcl8.3.2/generic/tclIO.c: Fixed memory leak that leaks
 3725 	around 112 bytes each time a file descriptor is closed.
 3726 	Thanks to Rob Mayoff for finding this and proposing a
 3727 	solution.
 3728 
 3729 2000-10-09  Kris Rehberg 
 3730 
 3731 	* sample-config.tcl: nsd.tcl is now sample-config.tcl so
 3732 	that existing users can look at the new reference configuration.
 3733 
 3734 	* nsd/nsmain.c (Ns_InfoNameOfExecutable): new function just
 3735 	returns nsconf.nsd which is determined elsewhere.
 3736 
 3737 	* nscp/nscp.c (Login): Tells you lots of harmless info
 3738 	about the machine once you log in.  Also, nscp does not
 3739 	run unless configuration is explicitly set
 3740 
 3741 	* nsd/nsmain.c: Some typo or other.
 3742 
 3743 	* General: Files were re-arranged and some were renamed.
 3744 	The sample SSL key/cert files are sample-certfile,
 3745 	sample-keyfile.  The nsd.tcl is now called sample-config.tcl
 3746 	(so that existing installations always have a current
 3747 	reference copy of the configuration).  Other minor changes.
 3748 
 3749 	* tests/:  Moved from its hiding place in scripts/test.
 3750 	Install them with "gmake install-tests".
 3751 
 3752 	* nsd/tclxkeylist.c, nsd/tclcmds.c, nsd/Makefile: Re-added
 3753 	TclX keyl* commands that were in AOLserver 2.x.  These are
 3754 	inferior to ns_set which is why they were left out in the
 3755 	first place.
 3756 
 3757 2000-10-04  Jim Davidson
 3758 
 3759 	* binder.c: Set close-on-exec on received fd from binder.
 3760 	
 3761 	* sock.c: Removed cthread errno API's, Mac OS X now has
 3762 	thread-safe errno.
 3763 
 3764 	* nsd/nsmain.c, include/Makefile.global, nsd/nsthread.h,
 3765 	nspd/main.c, nsunix/nsunix.c, nsvhr/nsvhr.c, thread/Makefile,
 3766 	thread/osthread, thread/reentrant.c, thread/signal.c:
 3767 	Updates for Mac OS X.  Use MACOSX instead of APPLE; use
 3768 	HAVE_BSDSETPGRP, HAVE_CMMSG, use pthreads instead of
 3769 	cthreads.
 3770 	
 3771 	* nssock/sock.c: Removed setting bufsize to uninitialized
 3772 	value on ssl.
 3773 
 3774 	* include/ns.h: Removed Ns_CacheTimedGetValue which was an
 3775 	odd interface not used anywhere.
 3776 	
 3777 	* nsd/nsd.h: Update to version 3.11.
 3778 	
 3779 	* tcl/namespace.tcl: Added namespace export to init script.
 3780 	
 3781 	* thread/pthread.cpp: Stopped using pthread_once as it
 3782 	appears to require a lock.
 3783 	
 3784 2000-10-04  Kris Rehberg 
 3785 
 3786 	* win32/nsssl/nsssl.dsp: nsssl project for win32.
 3787 
 3788 	* win32/aolserver.dsw: main installation keeps DLL's as
 3789 	DLL's now.
 3790 
 3791 	* scripts/nsd.tcl: shared library extension is now
 3792 	platform-dependent
 3793 
 3794 	* nssock/ssltcl.c: Changed name of ReadFile adn WriteFile
 3795 	to avoid Win32 naming conflicts.
 3796 	
 3797 2000-09-28  Kris Rehberg 
 3798 
 3799 	* scripts/tests/nstelemetry.adp: added "Expires: now" header
 3800 	to ensure it gets run each time it's visitted.
 3801 
 3802 	* nsd/serv.c (NsConnArgProc): Race condition when threads
 3803 	exit while [ns_info threads] is run; arg can be NULL.  Seen
 3804 	mostly by people who regularly visit nstelemetry.adp.
 3805 	(AppendConn): same thing but with connPtr.  This may be a
 3806 	losing battle.  It appears to work on a busy Irix server,
 3807 	so I'm declaring victory for now.
 3808 
 3809 2000-09-28  Jim Davidson
 3810 	
 3811 	* nssock/sock.c: Fixed bufferred read code in SockRead,
 3812 	resulting in a big performance boost and system load
 3813 	reduction.  Special thanks to Zachary Girouard.
 3814 
 3815 2000-09-05  Kris Rehberg 
 3816 
 3817 	*** AOLserver 3.1 Released *** 
 3818 
 3819 2000-09-05  (various: Jerry Asher, Jim Davidson, "Dossy," Curtis Galloway,
 3820 	Scott S. Goodwin, Rob Mayoff, Kris Rehberg)
 3821 
 3822 	* thread/win32.cpp: Sets thread stack size as on other
 3823 	platforms.
 3824 
 3825 	* thread/thread.c: NULL out thread arg at exit to avoid
 3826 	Ns_ThreadEnum checking arg info for possibly deallocated
 3827 	context as seen in ns_info threads.  Also, moved read of
 3828 	firstPtr in Ns_ThreadEnum inside lock.  Added Ns_ThreadCreate2
 3829 	in thread.c needed for upgrade to Tcl 8.3.1 in tcl8x.c
 3830 	
 3831 	* thread/pthread.cpp: ETIME bug work around not causes
 3832 	wakeup in Ns_CondWait and Ns_CondTimeWait instead of waiting
 3833 	again.  This is more conservative and should avoid problems
 3834 	some have had with threads missing wakeup.
 3835 
 3836 	* thread/pool.c: Added a simple 1-byte range check to -z
 3837 	allocator.
 3838 
 3839 	* thread/Makefile: Added dependency for osthread.o to
 3840 	Makefile.
 3841 
 3842 	* tcl/namespace.tcl: Added namespace export to init script.
 3843 
 3844 	* nsvhr/nsvhr.c: Switched to Ns_WriteConn in TimedSockDump
 3845 	to ensure all data was sent.
 3846 
 3847 	* nssock(nsssl): SSL module includes a fake 40-bit/512-bit
 3848 	export-grade SSL keyfile.pem and certfile.pem for immediate
 3849 	use on installation.  Adjusted for use with BSAFE 4 and 5.
 3850 
 3851 	* nspd: Library now installed to binary distribution.
 3852 
 3853 	* nsd/tclsock.c: Fixed crash bug in error message in
 3854 	ns_socknread.
 3855 
 3856 	* nsd/tclcmds.c: Added ns_adp_registertag command as
 3857 	documented.
 3858 	
 3859 	* nsd/serv.c: Added missing break for unauthorized case in
 3860 	ConnRun.
 3861 
 3862 	* nsd/random.c: Fixed deadlock between Ns_DRand/Ns_GenSeeds.
 3863 	
 3864 	* nsd/nsmain.c: Fixed some message formatting problems.
 3865 
 3866 	* nsd/mimetypes.c: Added .png type, "image/png".
 3867 	
 3868 	* nsd/dbtcl.c: Removed unused variables in GetCsvCmd.  Use
 3869 	a dstring to create the column list instead of incrementally
 3870 	setting the output variable with Tcl_SetVar.  This was
 3871 	necessary to avoid conflicting definitions of the needed
 3872 	TCL_ flags between 7.6 and 8.x.
 3873 
 3874 	* nsd/dbinit.c: MOdified current per-thread handle count
 3875 	to use a single TLS slot instead of a slot per pool.
 3876 	
 3877 	* nsd/tclinit.c,adp.c,conn.c: The use of thread-local
 3878 	storage (Tls) is now self-initializing in the conn, ADP,
 3879 	Tcl, etc.  This allows ns_conn commands to be used outside
 3880 	a connection thread as well as other uses of Tls where it
 3881 	may not be ready for use.
 3882 
 3883 	* nscp/nscp.c: Password non-echo code confuses Win32 and
 3884 	some free Unix telnet clients so it has been disabled by
 3885 	default for now, though it can be enabled by setting
 3886 	"echopassword" in the nscp module section of nsd.tcl.
 3887 	
 3888 2000-08-21  Kris Rehberg 
 3889 
 3890 	* nscp/nscp.c: Makes some attempt to recognize and handle
 3891 	telnet IAC codes like CTRL-C and CTRL-D to force a logout.
 3892 	This implementation of the telnet protocol is dirt-cheap,
 3893 	so only standard Unix telnet is supported.  On Win32, IAC
 3894 	handling is completely disabled because the client is too
 3895 	chatty with its IAC codes.
 3896 
 3897 2000-08-20  Kris Rehberg 
 3898 
 3899 	* nsftp, nspostgres, nssolid, nssybpd moved to $TOP level.
 3900 
 3901 2000-08-17  Jim Davidson
 3902 
 3903 	* nsd/dbtcl: Removed unused variables in GetCsvCmd.
 3904 	
 3905 	* nsd/adp.c: Fixed bug of not truncating output buffer when
 3906 	an error was thrown during an ns_adp_parse.  Fix suggested
 3907 	by Rob Mayoff.
 3908 
 3909 	* tcl7.6 and tcl8.2.3: Switched to blocking Tcl_WaitPid to
 3910 	avoid zombies as suggested by Rob Mayoff.
 3911 	
 3912 	* thread: NULL out thread arg at exit to avoid Ns_ThreadEnum
 3913 	checking arg info for possibly deallocated context as seen
 3914 	in ns_info threads.  Also, moved read of firstPtr in
 3915 	Ns_ThreadEnum inside lock.
 3916 	
 3917 2000-08-17  Kris Rehberg 
 3918 	
 3919 	* nssock/sock.c (SockThread): warning sent to log when
 3920 	Server Busy is returned.
 3921 
 3922 	* All the Makefiles should be in line with each other.
 3923 	Typing "gmake", "gmake install" and "gmake clean" should
 3924 	work in any directory.  NSHOME is paid attention to by all
 3925 	Makefiles.
 3926 
 3927 	* nsd: Ns_Log and Ns_Fatal statements are hopefully more
 3928 	standardized and more useful to admins and developers.
 3929 
 3930 	* Irix now builds as -o32 using the native compiler by
 3931 	default.  See Makefile.global on how to change.
 3932 
 3933 2000-08-15  Kris Rehberg 
 3934 
 3935 	* include/Makefile.global (INSTLOG): should have pointed
 3936 	to $(INST)/lib, not $(INST)/modules/lib.
 3937 
 3938 	* Makefile: nsunix resurrected.  All modules are built.
 3939 	If a module is missing a library, it is not built, but it
 3940 	won't stop the AOLserver build process (no error is thrown).
 3941 	The build will continue with the next module.
 3942 	
 3943 	* nsftp: guesses if you have TCP_WRAPPERS available.
 3944 
 3945 	* nsext: Ten guesses why $(NSHOME)/include/nsextmsg.h was
 3946 	duplicated here.
 3947 
 3948 	* nssybpd: Hopefully, the log statements will be easier to
 3949 	understand by both admins and developers.  It's still messy
 3950 	since it uses syslog.  Makefile redone to use standard
 3951 	AOLserver rules.  RPATH is used a little more intelligently.
 3952 	Removed files that had no business living there.
 3953 	
 3954 	* include/Makefile.global: Took stab at RPATH support on
 3955 	Solaris to perhaps remove the need for LD_LIBRARY_PATH on
 3956 	an intelligenly-administered system.  New rule for libnspd.a.
 3957 	
 3958 	
 3959 2000-08-14  Kris Rehberg 
 3960 
 3961 	* Makefile: nsvhr has been resurrected and enjoys our full
 3962 	support.
 3963 
 3964 	* nsexample/Makefile: The include at the bottom wasn't using
 3965 	$(NSHOME).
 3966 
 3967 2000-08-14  Jim Davidson
 3968 
 3969 	* Tcl 8.x library upgraded to tcl8.3.2.
 3970 
 3971 	* thread/pool.c: A spiffy range-checker added to the Zippy
 3972 	(-z) memory allocator.
 3973 
 3974 2000-08-11  Kris Rehberg 
 3975 
 3976 	* nsvhr/nsvhr.c: Always add "Connection: close" to the
 3977 	request line to satisfy HTTP 1.1 RFC -- this would break
 3978 	MSIE in HTTP 1.1 mode.  HTTP_EOL of "\r\n" used on all
 3979 	request lines for stupid web servers on the other end.
 3980 	Protocol "tcp" added as synonym of "http" for old-time Unix
 3981 	heads.  Lots of folks lended a hand on this one -- Satyam
 3982 	Priyadarshy, Jerry Asher, Kriston Rehberg, and special
 3983 	thanks to Wanda G. at AOL for adding a CNAME in DNS so
 3984 	quickly.
 3985 
 3986 2000-08-09  Kris Rehberg 
 3987 
 3988 	* nsd/serv.c: A whole lot less chatty about conns starting
 3989 	and exiting.  If you want to see them, turn on the Debug
 3990 	flag.
 3991 
 3992 	* doc/*: lots of updates.  Title page extremely simplified.
 3993 	SSL docs updated.  Release notes updated.  NSV docs corrected
 3994 	(thanks to Todd Levy.
 3995 
 3996 2000-08-09  Jim Davidson
 3997 	
 3998 	* tcl7.6/generic/tclFHandle.c: Removed needed fileTable
 3999 	which could result in crashes when fd's where reused quickly
 4000 	[fixes a rare multiple-exec crashing bug in nsd76 --kris].
 4001 
 4002 	* thread/tcl8x.c: Added a wrapper startup for Tcl_CreateThread
 4003 	for the benefit of Win32.
 4004 
 4005 	* nsd/log.c: Removed severityRank array.
 4006 
 4007 	* nsd/tclmisc.c: Fixed bug with ns_info pid. [I can't code --kris]
 4008 	
 4009 	* nsd: keepalive.c,nsmain.c,sched.c,serv.c: Re-ordered
 4010 	shutdowns to ensure connection threads are stopped before
 4011 	other shutdowns begin (e.g., sched, sockcallback).
 4012 	
 4013 	* tcl8.3.1 replaces tcl8.3.0.  README.AOLSERVER added to
 4014 	tcl8.3.1 directory.  Original copies of changed are named
 4015 	*.orig.
 4016 
 4017 	* include/Makefile.global: Build environment now uses gcc
 4018 	-shared -nostartfiles as the default LDSO.
 4019 
 4020 	* nsthread/thread.c: Added Ns_ThreadCreate2 with extra
 4021 	flags argument used by Tcl_CreateThread to create a detached
 4022 	thread.
 4023 	
 4024 2000-08-06  Scott S. Goodwin
 4025 
 4026 	* nsd/log.c: Segmentation fault was occuring when writing
 4027 	to the log file because file pointer was being assigned to
 4028 	incorrectly - it wasn't NULL and it wasn't a valid address
 4029 	within processes memory. Fixed.
 4030 
 4031 2000-08-06  Scott S. Goodwin
 4032 
 4033 	* nssock: You can now compile with BSAFE versions 4 and 5.
 4034 	You'll need to specify the path to your BSAFE libaries and
 4035 	the BSAFE version in the nssock/Makefile before compiling.
 4036 	If you don't have BSAFE and want to compile without SSL at
 4037 	all, edit the toplevel Makefile and take out all the "SSL=1"
 4038 	text. The files changed were nssock/Makefile and
 4039 	nssock/t_stdlib.c.
 4040 
 4041 2000-08-02  Kris Rehberg 
 4042 
 4043 	* Build process is a little more rule-oriented.  The cleaning
 4044 	rules "distclean" and "clobber" were removed.  The Tcl
 4045 	libraries are always distcleaned when "gmake clean" is
 4046 	invoked.  Rules that can be used as dependencies were made
 4047 	for libnsthread and the Tcl libraries -- their names are
 4048 	"libnsthread," "libtcl76," and "libtcl8x," respectively.
 4049 	PREFIX is now used as the installation directory (along
 4050 	with INST), so the more familiar "gmake install
 4051 	PREFIX=/usr/local/aolserver" will work.  Additionally,
 4052 	gmaking in a subdirectory with dependencies now works.
 4053 	
 4054 	* nsd/log.c: The sourge of modlog has been removed.  All
 4055 	code included with AOLserver that used Ns_ModLog now doesn't.
 4056 	Many log statements are now hopefully more standardized.
 4057 	This will be a continuing improvement over the next several
 4058 	updates.  I would like to use gcc's __FUNCTION__ macro but
 4059 	it doesn't work on native compilers, but we may start using
 4060 	__LINE__ and __FILE__ instead or replace Ns_Log with a
 4061 	smart macro that takes care of all this stuff for us.
 4062 
 4063 	* nsd/tclmisc.c (NsTclInfoCmd): ns_info pid added to return
 4064 	the process id.
 4065 
 4066 2000-08-01  Kris Rehberg 
 4067 
 4068 	* nsd/adp.c (Ns_AdpRequest): The enableexpire option was
 4069 	putting an Expires header even if it already existed.
 4070 
 4071 	* nsd/return.c (Ns_ConnReturnNotice): Yikes, /face should
 4072 	have been /font.  No more fonts, colors, etc, on default
 4073 	notice pages.
 4074 
 4075 	* nsd/tclsock.c (NsTclSockOpenCmd): Removed spurious Ns_Log
 4076 	Notice from ns_sockopen.
 4077 
 4078 	* tcl/form.tcl (ns_getform): MSIE presents the wrong stuff
 4079 	to the server when a multipart/formdata POST is redirected.
 4080 	Workaround contributed by Joseph Bank.
 4081 
 4082 	* tcl/fastpath.tcl (_ns_dirlist): base href removed --
 4083 	links are now fully-qualified.
 4084 
 4085 	* Makefile (install): include and lib dirs are now included
 4086 	in binary distribution.
 4087 
 4088 	* tcl/http.tcl (_ns_http_gets): \n replaced by \r in all
 4089 	but _ns_http_gets so that arbitrary headers get set correctly.
 4090 
 4091 	* tcl7.6/generic/tclPosixStr.c (Tcl_SignalMsg): Patch to
 4092 	Tcl 7.6 for Red Hat on SPARC architectures.  Contributed
 4093 	by Mike Chan.
 4094 
 4095 2000-07-13  Kris Rehberg 
 4096 
 4097 	* scripts/nsd.tcl: nssslmodule names the nsssl/nsssle
 4098 	binary's filename.  nscp_port tells nscp what port to
 4099 	listen.
 4100 
 4101 	* nssock: nssock.c renamed sock.c, SSL support has been
 4102 	merged back with nssock so that both nsssl and nssock use
 4103 	identical socket code.
 4104 	
 4105 	* nsssl2: directory removed; nsssl is in the nssock directory
 4106 	now.
 4107 
 4108 2000-05-09  Kris Rehberg 
 4109 
 4110 	* Re-added doc directory which has had the online docs
 4111 	removed.
 4112 
 4113 2000-05-02  Kris Rehberg 
 4114 
 4115 	* Makefile, include/Makefile.global, include/Makefile.module,
 4116 	nsexample/Makefile: Now uses NSHOME variable to locate
 4117 	AOLserver.  NSHOME is automatically figured out in the
 4118 	top-level Makefile and all the lower Makefiles still use
 4119 	relative directory paths.  The intention of NSHOME is for
 4120 	modules that do NOT live in the AOLserver source directory
 4121 	tree.  The nsexample/Makefile explains how this works.
 4122 
 4123 	* nsftp module added.  Contributed by Eric O'Laughlen.
 4124 
 4125 2000-04-12  Kris Rehberg 
 4126 
 4127 	*** AOLserver 3.0 FINAL Released ***