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 ***
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use