Skip to content
CHANGES 585 KiB
Newer Older
     always fails. 

     The patch also enhances ap_get_oslevel (and the associated enum) to 
     handle selected service packs for NT4, and adds recognition for 
     Windows 2000. This is useful, eg. if we can recognise NT4 SP2 then 
     we can use ReadFileScatter and WriteFileGather in readwrite.c. 
     [Tim Costello <Tim.Costello@BTFinancialgroup.com>]

  *) Get mod_rewrite building and running, and mod_status building for Win NT
     [Allan Edwards <ake@raleigh.ibm.com>]

  *) Patch to port mod_auth_db to the 2.0 api and also to support 
     Berlekey DB 3.0. It works for me with both Berkeley DB 3.0.55 and 
     2.7.7.  It should work with version 1 as well but I haven't tested it.  
     [Brian Martin <bmartin@penguincomputing.com>]

  *) Get APR DSO code working under Windows. Includes cross platform
     fixes to mod_so.c.
     [Tim.Costello@BTFinancialgroup.com]

  *) Fix some of the Windows APR time functions.
     [William Rowe]

  *) FAQ changes related to tidying up historical documents on the web site.
     [Joshua Slive <slive@finance.commerce.ubc.ca>]

  *) Move Windows DSO code into APR.
     [Bill Stoddard]

  *) Eliminate apr_win.h and apr_winconfig.h (and the ugly #ifdefs they cause).
     Now, apr.h and apr_config.h are generated from apr.hw and apr_config.hw
     at build time. At this point, the server will not compile on Windows because
     of the recent DSO commits. Fixing those next.
     [Bill Rowe & Bill Stoddard]

  *) Added error checking for file I/O APR routines.
     [Jon Travis <jtravis@covalent.net>]

  *) APR: Don't use the values of resolver error codes for the 
     corresponding APR error codes.  On Unix and Win32, return the 
     proper APR error code after a resolver error. [Jeff Trawick]

Changes with Apache 2.0a2

  *) Renamed the executable back to httpd on all platforms other 
     than Win32
     [Ryan Bloom]

  *) Allow BeOS to survive restarts, log properly and a few
     small things it had problems with due to the way it setup
     users and groups. [David Reid]

  *) Get mod_rewrite working with APR locks
     [Paul Reder <rederpj@raleigh.ibm.com>]

  *) Actually remove the sempahore when the lock cleanup routine
     is called on BeOS. [David Reid]

  *) Clear hook registrations between reads of the config file.
     When DSOs are unloaded and re-loaded the old hook pointers may
     no longer be valid. This fix eliminates potential segfaults.
     [Allan Edwards <ake@raleigh.ibm.com>]

  *) Fix a problem with Sigfunc not being defined or bypassed
     if sigaction() wasn't found. [Jim Jagielski]

  *) Fix the locking mechanism on BSD variants.  They now use fcntl
     locks.  This allows the server to start and serve pages.
     [Ryan Bloom]

  *) First cut at getting the Win32 installer to work
     [William Rowe <wrowe@lnd.com>]

  *) Get htpasswd compiling under Windows
     [William Rowe <wrowe@lnd.com>]

  *) Change the log message for a bind() failure to show the
     interface and port number. [Jeff Trawick]

  *) Import the documentation from 1.3.12 and bring parts of it
     up-to-date with respect to the changes that have occurred
     in 2.0.
     [Tony Finch]

  *) BeOS MPM updated.  CGI bug on BeOS fixed.  IP addresses
     now logged correctly on BeOS.
     [David Reid]

  *) Create one makefile for all Win32 distributions (NT/2000/95/98).
     Makefile.win includes the same user interface as the old 
     Makefile.nt 
     [William Rowe <wrowe@lnd.com>, Jeff Trawick <trawick@us.ibm.com>]

  *) Win32 exec now uses COMSPEC environment string for command 
     shell path resolution.
     [William Rowe <wrowe@lnd.com>] PR#3715

  *) Win32: ap_connect() was not returning correct error condition
     PR5866
     [Allen Prescott <allen@clanprescott.com>]

  *) Win32: ap_open() was broken on Win9x because an NT-specific
     flag was passed to CreateFile.  ap_puts() added an unnecessary
     '\n'.
     [Jeff Trawick <trawick@us.ibm.com>]

  *) Put in Korean and Norwegian index.html pages (2.0 and 1.3)
     which where donated by Lee Kuk Hyun and Lorant Czaran. 'Fixed'
     confusing ee/et name and made all extensions language/dialect
     rather than country reflecting. Changed example files to
     explicit reflect the ISO charset and added a few common 
     ones to the example config [dirkx]

  *) Extend external module capability.  To use this, you call
     configure with --with-module=path/to/mod1,path/to/mod2,etc.
     [Ryan Bloom]

  *) Backported the various "default charset" fixes from 1.3.12,
     including the AddDefaultCharset directive. [Jim Jagielski]

  *) Added the capability to do ${ENVVAR} constructs in the
     config file. E.g. 'ServerAdmin ${POSTMASTER}'. As commited
     it does this on a line by line basis; i.e. if the envvar
     expands to something with spaces you have to protect it
     by adding quotes around it (Unless of course you expect it
     to contains more than one argument. Alternatively you
     can compile it on a per token basis; which is what people
     usually expect by setting RESOLVE_ENV_PER_TOKEN. But this
     hampers fancier hacks.
     [Dirk-Willem van Gulik]

  *) Changed the 'ErrorDocument' syntax in that it NO longer
     supports the asymetric

                ErrorDocument 301 "Some message

     Note the opening " quote, without a closing quote. It now
     has either the following syntaxes

                ErrorDocument XXX /local/uri
                ErrorDocument XXX http://valid/url
                ErrorDocument XXX "Some Message"

     The recognition heuristic is: if it has a space it
     is a message. If it has no spaces and starts with a /
     or is a valid URL then treat it that way. Otherwise it
     is assumed to be a message.

     This breaks backward compatibility but makes live a hell
     of a lot easier for GUI's and config file parsers.
     [Dirk-Willem van Gulik]

  *) Changed 'CacheNegotiatedDocs' from its present/not-present
     syntax into a 'on' or 'off' syntax. As it currently is the
     only non nesting token which uses NO_ARGS and thus is an
     absolute pain for any config interface automation. This
     breaks backward compatibility. [Dirk-Willem van Gulik]

  *) Add ability to add external modules to the build process.  This is
     done with --with-module=/path/to/module.  Modules can only be added
     as static modules at this point.
     [Ryan Bloom]

Changes with Apache 2.0a1

  *) Fix FreeBSD 3.3 core dump.
     Basically, ap_initialize() needs to get called before 
     create_process(), since create_process() passes op_on structure
     to semop() to get a lock, but op_on isn't initialized until 
     ap_initialize() calls setup_lock().  Here is a slight
     rearrangement to main() which calls ap_initialize() earlier...
     [Jeff Trawick <trawick@us.ibm.com>]

  *) Enable Apache to use sendfile/TransmitFile API
     [Bill Stoddard, David Reid, Paul Reder]

  *) Re-Implement Win32 APR network I/O APIs and most of the file I/O
     APIs.
     [Bill Stoddard]

  *) Make file I/O and network I/O writev/sendv APIs consistent.
     Eliminate use of ap_iovec_t and use Posix struct iovec.
     Use seperate variable on ap_writev to set the number of iovecs
     passed in and number of bytes written.
     [Bill Stoddard]

  *) Adapt file iol to use APR functions. Replaced ap_open_file() 
     with ap_create_file_iol(). ap_create_file_iol() requires that 
     the file be opened prior to the call using ap_open().
     [Bill Stoddard]

  *) Port mod_include and mod_cgi to 2.0
     [Paul Reder, Bill Stoddard]

  *) ap_send{,v}, ap_recv, ap_sendfile API clarification --
     bytes_read/bytes_written is always valid (never -1).  Plus
     some fixes to buff.c to correct problems introduced by the
     errno => ap_status_t changes a while back.  Plus a fix to
     chunked encoding introduced right at the beginning of 2.0.
     [Dean Gaudet]

  *) Revamped UNIX build system to use autoconf and libtool.
     [Manoj Kasichainula, Sascha Schumann]

  *) port mod_rewrite to 2.0. [Paul J. Reder <rederpj@raleigh.ibm.com>]

  *) SECURITY: More rigorous checking of Host: headers to fix security 
     problems with mass name-based virtual hosting (whether using mod_rewrite
6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000
     or mod_vhost_alias).
     [Ben Hyde, Tony Finch]
  
  *) Add back support for UseCanonicalName in <Directory> containers.
     [Manoj Kasichainula]

  *) Added APLOG_STARTUP log type.  This allows us to write an error
     message without any of the date and time information.  As a part
     of this change, I also removed all of the calls to fprintf(stderr
     and replaced them with calls to ap_log_error using APLOG_STARTUP
     writing to stderr is no longer portable, because we don't direct 
     stderr to the error log on all platforms.
     [Ryan Bloom] 
 
  *) Convert error logging functions to take errno as an argument.
     This makes our error logs more portable, because some Windows API's 
     don't set errno.  This change allows us to still output a valid
     message on all of our platforms.
     [Ryan Bloom]

  *) mod_mime_magic runs in 2.0-dev now.
     [Paul Reder <rederpj@raleigh.ibm.com>]

  *) sendfile has been added to APR.
     [John Zedlewski <zedlwski@Princeton.EDU>]

  *) buff.c has been converted to no longer use errno.
     [Manoj Kasichainula]

  *) mod_speling runs in 2.0-dev now: a bug in readdir_r handling and
     interface adaption to APR functions did it. [Martin Kraemer]

  *) Support DSOs properly on 32-bit HP-UX 11.0
     [Dilip Khandekar <dilip@cup.hp.com>]

  *) Updated MM in APR source tree from version 1.0.8 to 1.0.11
     [Ralf S. Engelschall]

  *) Cleaned APR build environment integration and bootstrap APR 
     automatically for developers from src/Configure.
     [Ralf S. Engelschall]

  *) Fixed building of src/support/htpasswd.c
     [Ralf S. Engelschall]

  *) When generating the Location: header, mod_speling forgot
     to escape the spelling-fixed uri. (Forw-Port from 1.3)
     [Martin Kraemer]

  *) Moved mod_auth_digest.c from experimental to standard. [Roy Fielding]

  *) Change all pools to APR contexts.  This is the first step to
     incorporating APR into Apache. [Ryan Bloom]

  *) Move "handler not found" warning message to below the check
     for a wildcard handler.  [Dirk <dirkm@teleport.com>, Roy Fielding]
     PR#2584, PR#2751, PR#3349, PR#3436, PR#3548, PR#4384, PR#4795, PR#4807

  *) Support line-continuation feature in config.option file and
     allow the loading of multiple option sections at once via
     ``--with-option=<section1>,<section2>,...''
     [Ralf S. Engelschall]

  *) Rebuilt CVS repository with Apache 1.3.9 as basis.  [Roy Fielding]

Changes with Apache MPM

  *) Use asynchronous AcceptEx() and a completion port to accept and
     dispatch connections to threads in Windows NT/2000. 
     [Bill Stoddard]

  *) Implement WINNT Win32 MPM from original Win32 code in http_main.c
     [Bill Stoddard]  

  *) Implement the APACI --with-option facility 
     (per default used the config.option file).
     [Ralf S. Engelschall]

  *) MPM BEOS port.  [David Reid <abb37@dial.pipex.com>]

  *) Start to implement module-defined hooks that are a) fast and b) typesafe.
     Replace pre_connection module call with a register_hook call and
     implement pre_connection as a hook. The intent is that these hooks will
     be extended to allow Apache to be multi-protocol, and also to allow the
     calling order to be specified on a per-hook/per-module basis.
     [Ben Laurie]

  *) Implement mpm_* methods as "modules". Each method gets its own
     subdir in src/modules (eg: src/modules/prefork). Selection
     of method uses Rule MPM_METHOD.  [Jim Jagielski]

  *) Port the hybrid server from the apache-apr repository as
     mpm_mpmt_pthread.  [Manoj Kasichainula]

  *) os/unix/unixd.[ch]: detach, setuid, setgid, stuff which will be common
     amongst the unix MPMs.

  *) mpm_prefork: throw away all the alarm/timeout crud; and clean up the
     signal handling for the new world order.  [Dean Gaudet]

  *) Crude ap_thread_mutex abstraction so that we get the pthread stuff out
     of alloc.c for now.  [Dean Gaudet]

  *) Handle partial large writes correctly.  [Ben Laurie]

  *) Eliminate conn_rec's pointer to server. All it knows is the base server
     based on IP/port.  [Ben Laurie]

  *) Port a bunch of modules to the new module structure.
     ["Michael H. Voase" <mvoase@midcoast.com.au>]

  *) I/O layering and BUFF revamp.  See docs/buff.txt.  [Dean Gaudet]

  *) Basic restructuring to introduce the MPM concept; includes various
     changes to the module API... better described by
     docs/initial_blurb.txt.  [Dean Gaudet]

Changes with Apache pthreads

  *) New buff option added: BO_TIMEOUT. It describes the timeout for
     buff operations (generally over a network).
     [Dean Gaudet, Ryan Bloom, Manoj Kasichainula]

  *) Created http_accept abstraction. Added 4 new functions (not exported):
     init_accept(), begin_accepting_requests(), get_request(), 
     stop_accepting_requests() [Bill Stoddard]

  *) Fix to ap_rprintf call that allows mod_info to work properly.
     [James Morris <jmorris@intercode.com.au>]

  *) user and ap_auth_type fields were moved from connection_rec to 
     request_rec. [Ryan Bloom] 

  *) Removed the ap_block_alarms and ap_unblock_alarm calls.  These aren't
     needed in a threaded server.

  *) Initial pthread implementation from from Dean's apache-nspr code.
     [Bill Stoddard, Ryan Bloom]


Changes with Apache 1.3.9

  *) Remove bogus error message when a redirect doesn't set Location.
     Instead, use an empty string to avoid coredump if the error message
     was supposed to include a location.  [Roy Fielding]

  *) Don't allow configure to include mod_auth_digest unless it is
     explicitly requested, even if the user asked for all modules.
     [Roy Fielding]

  *) Translate module names to dll names for OS/2 so that they are no more
     than 8 characters long and have an extension of "dll" instead of "so".
     [Brian Havard]

  *) Print out pointer to Rule DEV_RANDOM when truerand lib not found.
     Fix test-compile check to check for randbyte instead of trand32.
     Use ap_base64encode_binary/decode instead of copy in mod_auth_digest.c
     and tweak to make Amaya happier.  [Ronald Tschalär]

  *) Ensure that the installed expat include files are world readable,
     just like the other header files.  [Martin Kraemer]

  *) Fixed generated AddModule adjustments in APACI's `configure' script
     in order to allow (new) modules like mod_vhost_alias to be handled
     correctly (which was touched by the adjustments for mod_alias).
     [Ralf S. Engelschall]

  *) For binary builds, add -R flag to apachectl to work around the lack of
     an absolute path to the ./libexec directory where the libhttp.ep file
     is needed for SHARED_CORE architectures.  [Randy Terbush]

  *) WIN32: Create the CGI script process as DETACHED.  This may solve the
     problem observed by some Win95/98 users where they get CGI script
     output sent to the console.  [Bill Stoddard]

  *) Fix (re)naming in the uuencode/decode section. The ap/ap_
     routines are now called ap_base64* and are 'plain' (i.e., no 
     pool access or anything clever). Inside util.c the routines acting
     like pstrdup are called ap_pbase64encode() and ap_pbase64decode().
     The oddly named ap_uuencode(), ap_uudecode() are kept around for
     now but deprecated.  [dirkx]

  *) Clean up the base64 and SHA1 additions and make sure they are
     represented in the ApacheCore.def, ApacheCoreOS2.def, and httpd.exp
     files.  [Roy Fielding]

  *) WIN32: Migrate to InstallShield 5.5 and provide a bit more error
     checking.  Allow compiling on VS 6.0.  [Randy Terbush]

  *) Fixed assumption of absolute paths in binbuild.sh.  [Tony Finch]

  *) Use TestCompile to search for the truerand library (rather than blindly
     assuming its existence). If it is not found, complain (but do not
     exit - yet).  [Martin Kraemer]

  *) We forgot to add the new exported function names to
     src/support/httpd.exp.  [Bill Stoddard, Randy Terbush]

  *) Add description of -T command-line option to usage().
     [Ralf S. Engelschall]

  *) For "some" platforms (notably, EBCDIC based ones), libos needs to be
     searched only AFTER libap has been searched, because libap needs
     some symbols from libos.  [Martin Kraemer]

  *) Fix conflict with original mod_digest related to the symbol of the
     module dispatch list (which has to be unique for DSO and follow the
     usual conventions for the installation procedure).
     [Ralf S. Engelschall]

  *) Add a dbm-library check for the "usual places" (-ldbm, -lndbm, -ldb)
     for other platforms as well.  [Martin Kraemer]

  *) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG
     types by AP_LONG and replace reference to renamed variable 'ubuf'
     by 'buffer'.  [Martin Kraemer]

Changes with Apache 1.3.8 [not released]

  *) Flush the output buffer immediately after sending an error or redirect
     response, since the result may be needed by the client to abort a
     long data transfer or restart a series of pipelined requests.
     [Tom Vaughan <tvaughan@aventail.com>, Roy Fielding]

  *) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx.
     [Ian Turner <iant@sequent.com>] PR#4735

  *) Local struct mmap in http_core.c conflicted with system structure
     name on DYNIX -- changed to mmap_rec.  [Roy Fielding] PR#4735

  *) Added updated mod_digest as modules/experimental/mod_auth_digest.
     [Ronald Tschalär <ronald@innovation.ch>]

  *) Fix a memory leak where the module counts were getting messed
     up across restarts.  [David Harris <dharris@drh.net>]

  *) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled
     properly in mod_access.
     ["Paul J. Reder" <rederpj@raleigh.ibm.com>] PR#4770

  *) RewriteLock/RewriteMap didn't work properly with virtual hosts.
     [Dmitry Khrustalev <dima@bog.msu.su>] PR#3874

  *) PORT: Support for compaq/tandem/com.
     [Michael Ottati <michael.ottati@compaq.com>, dirkx]

  *) Added SHA1 password encryption support to easy migration from 
     Netscape servers. See support/SHA1 for more information.
     Caused the separation of ap_md5.c into md5, sha1 and a general
     ap_checkpass.c with just a validate_passwd routine. Added a
     couple of flags to support/htpasswd. Some reuse of the to64()
     function; hence renamed to ap_to64().
     [Dirk-Willem van Gulik, Clinton Wong <clintdw@netcom.com>]

  *) Change for EBCDIC platforms (TPF and BS2000) to correctly deal
     with ASCII/EBCDIC conversions in "ident" query.
     [David McCreedy <McCreedy@us.ibm.com>]

  *) Get rid of redefinition warning on MAC_OS_X_SERVER platform.
     Change "Power Macintosh" to Power* so if uname prints "Power Book"
     we're still happy on Rhapsody platforms.  [Wilfredo Sanchez]

  *) Fix SIGSEGV on some systems because the Vary fix below included
     a call to table_do with a variable argument list that was not
     NULL terminated.  Replaced with better implementation. [Roy Fielding]

Changes with Apache 1.3.7 [not released]

  *) The "Vary" response header field is now sanitised right before
     the header is sent back to the client.  Multiple "Vary" fields
     are combined, and duplicate tokens (e.g., "Vary: host, host" or
     "Vary: host, negotiate, host, accept-language") are reduced to
     single instances.  This is a better solution than the force-no-vary
     one (which is still valid for clients that can't cope with Vary
     at all).  PR#3118 [Dean Gaudet, Roy Fielding, Ken Coar]

  *) Portability changes for BeOS. [David Reid abb37@dial.pipex.com]

  *) Link DSO's with "gcc -shared" instead of "ld -Bshareable" at 
     least on Linux and FreeBSD for now.  
     [Rasmus Lerdorf]

  *) Win32: More apache -k restart work. Restarts are now honored
     immediately and connections in the listen queue are -not- lost.
     This is made possible by the use of the WSADuplicateSocket()
     call.  The listeners are opened in the parent, duplicated, then
     the duplicates are passed to the child. The original listen sockets 
     are not closed by the parent across a restart, thus the listen queue 
     is preserved.
     [Bill Stoddard <stoddard@raleigh.ibm.com>]

  *) Fix handling of case when a client has sent "Expect: 100-continue"
     and we are going to respond with an error, but get stuck waiting to
     discard the body in the pointless hope of preserving the connection.
     [Roy Fielding, Joe Orton <jeo101@york.ac.uk>] PR#4499, PR#3806

  *) Fix 'configure' to work correctly with SysV-based versions of
     'tr' (consistent with Configure's use as well). [Jim Jagielski]

  *) apxs: Add "-S var=val" option which allows for override of CFG_*
     built-in values. Add "-e" option which works like -i but doesn't
     install the DSO; useful for editing httpd.conf with apxs. Fix
     editing code so that multiple invocations of apxs -a will not
     create duplicate LoadModule/AddModule entries; apxs can now be
     used to re- enable/disable a module.  [Wilfredo Sanchez]

  *) Win32: Update the server to use Winsock 2. Specifically, link with
     ws2_32.lib rather than wsock32.lib.  This gives us access to 
     WSADuplcateSocket() in addition to some other enhanced comm APIs.
     Win 95 users may need to update their TCP/IP stack to pick up
     Winsock 2. (See http://www.microsoft.com/windows95/downloads/)
     [Bill Stoddard stoddard@raleigh.ibm.com]

  *) Win32: Redirect CGI script stderr (script debug info) into the 
     error.log when CGI scripts fail. This makes Apache on Win32 
     behave more like Unix.      
     [Bill Stoddard stoddard@raleigh.ibm.com]

  *) Fixed `httpd' usage display: -D was missing.
     [Ralf S. Engelschall] PR#4614

  *) Fix `make r' test procedure in src/regex/: ap_isprint was not found.
     [Ralf S. Engelschall] PR#4561, PR#4562

  *) OS/2: Fix problem with accept lock semaphores where server would die with
     "OS2SEM: Error 105 getting accept lock. Exiting!" 
     [Brian Havard] PR#4505

  *) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms.
     [Randy Terbush <randy@covalent.net>]
 
  *) Add the new mass-vhost module (mod_vhost_alias.c) developed and
     used by Demon Internet, Ltd. [Tony Finch <fanf@demon.net>]

  *) Better GCC detection for DSO flags under Solaris 2 where the `cc' 
     command potentially _is_ GCC. [Ralf S. Engelschall]

  *) Fix apxs build issues on AIX 
     [Rasmus Lerdorf <rasmus@raleigh.ibm.com>]

  *) DocumentRoot Checking: Under previous versions, when Apache
     first started up, it used to do a stat of each DocumentRoot to
     see if it existed and was a directory. If not, then an error
     message was printed. THIS HAS BEEN DISABLED. If DocumentRoot
     does not exist, you will get error messages in error_log. If
     the '-t' command line option is used (to check the configuration)
     the check of DocumentRoot IS performed. An additional command
     line option, '-T', has been added if you want to avoid the
     DocumentRoot check even when checking the configuration.
     [Jim Jagielski]

  *) Win32: The query switch "apache -S" didn't exit after showing the
     vhost settings. That was inconsistent with the other query functions.
     [Bill Stoddard - Fixed by Martin on Unix in 1.3.4]

  *) Win32: Changed behaviour of apache -k restart. 
     Previously, the server would drain all connections in the stack's
     listen queue before honoring the restart. On a busy server, this
     could take hours.  Now, a restart is honored almost immediately. 
     All connections in Apache's queues are handled but connections in 
     the stack's listen queue are discarded. Restart triggered by 
     MaxRequestPerChild is unchanged.
     [Bill Stoddard <stoddard@raleigh.ibm.com>]

  *) Win32: Eliminated unnecessary call to wait_for_multiple_objects in
     the accept loop. Good for a 5% performance boost. Cleaned up 
     parent/child process management code. 
     [Bill Stoddard <stoddard@raleigh.ibm.com>]

  *) Added ceiling on file size for memory mapped files.
     [John Giannandrea <jg@meer.net>] PR#4122

  *) Fix ndbm.h include problems with brain-dead glibc >= 2.1 which 
     has ndbm.h in a non-standard db1/ subdir. PR#4431, PR#4528
     [Henri Gomez <gomez@slib.fr>, Ralf S. Engelschall] 

  *) Determine AP_BYTE_ORDER for ap_config_auto.h and already
     use this at least for Expat. [Ralf S. Engelschall]

  *) Allow .module files to specify libraries with Lib:.
     [Ben Laurie]

  *) Allow SetEnvIf[NoCase] to test environment variables as well
     as header fields and request attributes.  [Ken Coar]

  *) Fix mod_autoindex's handling of ScanHTMLTitles when file
     content-types are "text/html;parameters".  PR#4524  [Ken Coar]

  *) Remove "mxb" support from mod_negotiation -- it was a draft feature
     never accepted into any standard, and it opens up certain DoS
     attacks.  [Koen Holtman <Koen.Holtman@cern.ch>]

  *) TestCompile updated. We can now run programs and output the
     results during the Configure process. [ Jim Jagielski]

  *) The source is now quad (long long) aware as needed. Specifically,
     the Configure process determines the correct size of off_t and
     *void. When the OS/platform/compiler supports quads, ap_snprintf()
     provides for the 'q' format qualifier (if quads are not available,
     'q' is silently "demoted" to long). [Jim Jagielski]

  *) When the username or password fed to htpasswd is too long, include the
     size limit in the error message.  Also report illegal characters
     (currently only ':') in the username.  Add the size restrictions
     to the man page.  [Ken Coar]

  *) Fixed the configure --without-support option so it doesn't result in
     an infinite loop.  [Marc Slemko]

  *) Piped error logs could cause a segfault if an error occured
     during configuration after a restart.
     [Aidan Cully <aidan@panix.com>] PR#4456

  *) If a "Location" field was stored in r->err_headers_out rather
     than r->headers_out, redirect processing wouldn't find it and
     the server would core dump on ap_escape_html(NULL).  Check both
     tables and raise HTTP_INTERNAL_SERVER_ERROR with a log message
     if Location isn't set.  [Doug MacEachern, Ken Coar]

  *) Add RULE_EXPAT, the src/lib/ directory structure, and a modified copy
     of the Expat 1.0.2 distribution. [Greg Stein]

  *) Replace regexec() calls with calls to a new API stub function
     ap_regexec().  This solves problems with DSO modules which use the regex
     library. [Jens-Uwe Mager <jum@helios.de>, Ralf S. Engelschall]

  *) Add 'Request_Protocol' special keyword to mod_setenvif so that
     environment variables can be set according to the protocol version
     (e.g., HTTP/0.9 or HTTP/1.1) of the request.  [Ken Coar]

  *) Add DSO support for OpenStep (Mach 4.2) platform.
     [Ralf S. Engelschall, Rex Dieter <rdieter@math.unl.edu>] PR#3997

  *) Fix sed regex for generating ap_config_auto.h in src/Configure.
     [Jan Gallo <gallo@pvt.sk>] PR#3690, PR#4373
 
  *) Switch to /bin/sh5 in APACI on Ultrix and friends to avoid problems with
     their brain-dead /bin/sh. [Ralf S. Engelschall] PR#4372

  *) Better DSO flags recognition on NetBSD platforms using ELF.
     [Todd Vierling <tv@pobox.com>] PR#4310

  *) Always log months in english format for %t in mod_log_config.
     [Petr Lampa <lampa@fee.vutbr.cz>] PR#4366, 679

  *) Support for server-parsed and multiview-determined ReadmeName and
     HeaderName files in mod_autoindex. Removed the restriction on
     "/"s in ReadmeName and HeaderName directives since the *sub_req*
     routines will deal with the access issues. (It's now possible to
     have {site|group|project|customer|...} wide readmes and headers.)
     [Raymond S Brand <rsbx@rsbx.net>, Ken Coar] PR#1574, 3026, 3529,
     3569, 4256

  *) When stat() fails, don't assume anything about the contents of
     the struct stat.  [Ed Korthof <ed@bitmechanic.com>]

  *) It's OK for a semop to return EINTR, just loop around and try
     again.  [Dean Gaudet]

  *) Fix configuration engine re-entrant hangups, which solve a
     handful of problems seen with mod_perl <Perl> configuration sections
     [Salvador Ortiz Garcia <sog@msg.com.mx>]

  *) Mac OS and Mac OS X Server now use the appropriate custom layout
     by default when building with APACI; allow for platform-specific
     variable defaults in configure. [Wilfredo Sanchez]

  *) Do setgid() before initgroups() in http_main; some platforms
     zap the grouplist when setgid() is called.  This was fixed in
     suexec earlier, but the main httpd code missed the change.
     [Rob Saccoccio <robs@InfiniteTechnology.com>]  PR#2579

  *) Add recognition of .tgz as a gzipped tarchive.
     [Bertrand de Singly <bertrand.de-singly@polytechnique.fr>]  PR#2364

  *) mod_include's fsize/flastmod should allow only relative paths, just
     like "include file".  [Jaroslav Benkovsky <benkovsk@pha.pvt.cz>]

  *) OS/2: Add support for building loadable modules using DLLs.
     [Brian Havard]

  *) Add iconsdir, htdocsdir, and cgidir to config.layout.
     [Wilfredo Sanchez]

  *) Fix minor but annoying bug with the test for Configuration.tmpl
     being newer than Configuration so that it is less likely to fail
     when using APACI and shadow sources. [Wilfredo Sanchez]

  *) PORT: Add initial support for Mac OS (versions 10.0 and
     greater). Use Mac OS X Server layout for now. Clean up dyld code
     in unix/os.c, and don't install the dyld error handlers, which
     are no longer needed in Mac OS. [Wilfredo Sanchez]

  *) Rename Rhapsody layout to "Mac OS X Server". Change install
     locations to appropriate ones for user-built (as opposed to
     system) installs. [Wilfredo Sanchez]

  *) Modify mod_autoindex's handling of AddDescription so that the
     behaviour matches the documentation.  [Ken Coar] PR#1898, 3072.

  *) Add functionality to the install-bindist.sh script created by
     binbuild.sh to use tar when copying distribution files to the
     serverroot. This allows upgrading an existing installation
     without nesting the new distribution in the old.

     install-bindist.sh now detects the local perl5 path to install
     apxs and dbmmanage with proper path to perl interpreter.

     Add an install-binsupport target which copies the source files
     for apxs and dbmmanage to bindist to allow these scripts to
     be properly installed relative to the destination serverroot.
     [Randy Terbush, Covalent Technologies, randy@covalent.net]

  *) Fix intermittent SEGV in ap_proxy_cache_error() in
     src/modules/proxy_util.c where a NULL filepointer and
     temporary filename were closed and unlinked.
     [Graham Leggett <minfrin@sharp.fm>,
     Tim Costello <tjcostel@socs.uts.edu.au>] PR#3178

  *) Fix inconsistent error messages reported by mod_proxy.
     [Graham Leggett <minfrin@sharp.fm>]

  *) OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a 
     connection is aborted.  [Brian Havard]

  *) Force the LANG envariable to the known state of "C" so that we
     have assurance about how string manipulators (e.g., tr) will
     function.  [Ken Coar]  PR#1630

  *) Add a directive to allow customising of the tracking cookie name.
     [Ken Coar]  PR#2921, 4303

  *) Add "force-no-vary" envariable to allow servers to work around
     clients that choke on "Vary" fields in the response header.
     [Ken Coar, Dmitry Khrustalev <dima@zippy.machaon.ru>]  PR#4118

  *) Fixed a bug in mod_dir that causes a child process will infinitely
     recurse when it attemps to handle a request for a directory wnd the
     value of the DirectoryIndex directive is a single dot. Also likely
     to happen for anyother values of DirectoryIndex that will map back
     to the same directory. The handler now only considers regular files
     as being index candidates. No PR#s found.
     [Raymond S Brand <rsbx@rsbx.net>]

  *) Ease configuration debugging by making TestCompile fall back to
     using "make" if the $MAKE variable is unset [Martin Kraemer]

  *) Fixed the ServerSignature directive to work as documented.
     [Raymond S Brand <rsbx@rsbx.net>] PR#4248

  *) Add "opt" (SysV-style) layout to config.layout. [Raymond S Brand
     <rsbx@rsbx.net>]

  *) Add APACI --without-execstrip option which can be used to disable the
     stripping of executables on installation.  This is very important for DSO
     and debugging situations. [Ralf S. Engelschall]

  *) Add support for OS/2 (case insenstive filesystem, .exe suffix, etc)
     to APACI files and related scripts. 
     [Yitzchak Scott-Thoennes <sthoenna@efn.org>, Ralf S. Engelschall] PR#4269

  *) Add support for standalone mode in TPF
     [Joe Moenich <moenich@us.ibm.com>]

  *) Fix number of bytes copied by read_connection() in src/support/ab.c
     [Jim Cox <jc@superlink.net>] PR#4271

  *) Fix special RewriteCond "-s" pattern matching.
     [Bob Finch <bob@nas.com>]

  *) Fix value quoting in src/Configure script for ap_config_auto.h 
     [Paul Sutton <paul@awe.com>]

  *) Make sure RewriteLock can be used only in the global context, (i.e.
     outside of any <VirtualHost> sections) because it's a global facility of
     the rewrite engine. [Ralf S. Engelschall]

  *) Fix the ownership delegation for proxy directory under `make install'.
     [Ralf S. Engelschall]

  *) APACI would not correctly build suexec. [Maria Verina
     <mariav@icgeb.trieste.it>] PR#4260

  *) mod_mime_magic passed only the first 4k of a file to
     uncompress/gzip, but those tools sometimes do not produce
     any output unless a sufficient portion of the compressed
     file is input.  Change to pass the entire file -- but
     only read 4k of output.
     [Marcin Cieslak <saper@system.pl>] PR#4097

  *) "IndexOptions None" generated extra spaces at the end of each
     line.  [inkling@firstnethou.com] PR#3770

  *) The "100 Continue" response wasn't being sent after internal
     redirects. [Jose KAHAN <kahan@w3.org>] PR#3910, 3806, 3575

  *) When padding the name with spaces for display, mod_autoindex would
     count &, <, and > in their escaped width, messing up the display.
     [Dean Gaudet] PR#4075, 3758

  *) PORT: fixed a compilation problem on NEXT.
     [Jacques Distler <distler@golem.ph.utexas.edu>] PR#4130

  *) r->request_time wasn't being set properly in certain error conditions.
     [Dean Gaudet] PR#4156

  *) PORT: deal with UTS compiler error in http_protocol.c
     [Dave Dykstra <dwd@bell-labs.com>] PR#4189

  *) Add ap_vrprintf() function.  [John Tobey <jtobey@banta-im.com>] PR#4246

  *) Fix the mod_mime hash table to work properly with locales other
     than C.  [Dean Gaudet] PR#3427

  *) Fix a memory leak which is exacerbated by certain configurations.
     [Dean Gaudet] PR#4225

  *) Prevent clobbering saved IFS values in APACI. [Jim Jagielski]

  *) Fix buffer overflows in ap_uuencode and ap_uudecode pointed out
     by "Peter 'Luna' Altberg <peter@altberg.nu>" and PR#3422
     [Peter 'Luna' Altberg <peter@altberg.nu>, Ronald Tschalär]

  *) Make {Set,Unset,Pass}Env per-directory instead of per-server.
     [Ben Laurie]

  *) Correct an apparent typo: on the Windows and MPE platforms, the
     htpasswd utility was limiting passwords to only 8 characters.
     [Ken Coar]

  *) EBCDIC platforms: David submitted patches for two bugs in the
     MD5 digest port for EBCDIC machines:
     a) the htdigest utility overwrote the old contents of the digest file
     b) the Content-MD5 header value (ContentDigest directive) was wrong
     when the returned file was not converted from EBCDIC, but was a
     binary (e.g., image file) in the first place.
     [David McCreedy <mccreedy@us.ibm.com>]

  *) support/htpasswd now permits the password to be specified on the
     command line with the '-b' switch.  This is useful when passwords
     need to be maintained by scripts -- particularly in the Win32
     environment.  [Ken Coar]

  *) Win32: Win32 multiple services patch. Added capability to install and
     run multiple copies of apache as individual services.

     Example 1:
     apache -n apache1 -i -f c:/httpd.conf
        Installs apache as service 'apache1' and associates c:/httpd.conf
        with that service.
     net start apache1
        Starts apache1 service.
     net stop apache1
        Stops apache1 service

     Example 2:
     apache -n apache2 -i
        Installs apache as service 'apache2'. httpd.conf is located under
        the default server root (/apache/conf/httpd.conf).
     net start apache2
        Starts apache2 service.

     Example 3:
     apache -n apache3 -i -d c:/program files/apache
        Install apache as service 'apache3' and sets server root to
        c:/program files/apache.

     Example 4:
     apache -n apache2 -k restart
        Restart apache2 service 

     [Keith Wannamaker, Ken Parzygnat, Bill Stoddard]

  *) Correct the signed/unsigned character handling for the MD5 routines;
     mismatches were causing compilation problems with gcc -pedantic and
     in the TPF cross-compilation.  [Ken Coar]

  *) OS/2: Rework CGI handling to use spawn*() instead of fork/exec, achieving
     a roughly 5 fold speed up. [Brian Havard]

  *) proxy ftp: instead of using the hardwired string "text/plain" as
     a fallback type for files served by the ftp proxy, use the
     ap_default_type() function to determine the configured type.
     This allows for special configurations like
        <Directory proxy:ftp://some.host>
        DefaultType gargle/blurb
        </Directory>
     Additionally, add the Content-Encoding: header to FTP proxy replies
     when the encoding is defined (by the AddEncoding directive).
     Because it was missing, it was almost impossible to browse compressed
     files using the FTP proxy (works now perfectly in Communicator).
     The ftp proxy now also returns the Date: and Server: header lines (if not
     much else... This code is "somewhat" broken) like normal requests do.
     [Martin Kraemer]

  *) Be more smart in APACI's configure script when determining the UID/GID
     for User/Group directives and use the determined UID/GID to initialize
     the permissions on the proxycachedir.
     [Dirk-Willem van Gulik, Ralf S. Engelschall]

  *) Changed the forking-prior-to-cleanup in the proxy module to first
     check wether it actually needs to collect garbage. This reduces 
     the number of fork()s from one/request to just the odd one an hour.
     [Dirk-Willem van Gulik]

  *) Added proxy, auth and header support to src/support/ab.c. Added a
     README file to src/support/
     [Dirk-Willem van Gulik]

  *) Don't hard-code the path to AWK in --shadow bootstrapping Makefile.
     [Ralf S. Engelschall] PR#4050

  *) Add support for DSO module compilation on BSD/OS 3.x.
     [Randy Terbush, Covalent Technologies]

  *) Fix sed-substitutions in `make install': path elements like `httpd/conf'
     (for instance from an APACI configure --sysconfdir=/etc/httpd/conf
     option) were substituted with $(TARGET).conf, etc. Same for other strings
     with dots where the dot wasn't matched as plain text. 
     [Ralf S. Engelschall]

  *) PORT: Add support for FreeBSD 4.x [Ralf S. Engelschall]

  *) Fix verbose output of APACI configure (option -v) 
     [Martin Kraemer, Ralf S. Engelschall]

Changes with Apache 1.3.6

  *) Removed new PassAllEnv code due to DSO problems. [Lars Eilebrecht]

Changes with Apache 1.3.5 [not released]

  *) M_INVALID needed a value within the scope of METHODS so that unknown
     methods can be access controlled.  [Roy Fielding] PR#3821

  *) Added PassAllEnv; makes server's entire environment available
     to CGIs and SSIs executed within directive's scope.  [Ken Coar]

  *) ap_uuencode() always added two trailing '='s and encoding of
     8 bit characters on a machine with signed char may produced
     incorrect results. Additionally ap_uuencode() should now
     work correctly on EBCDIC platforms.
     [Ronald Tschalär <ronald@innovation.ch>] PR#3411

  *) WIN32: Binary installer now runs the configuration DLL before
     the reboot prompt (which is only given if MSVCRT.DLL system
     DLL is new or updated). This should avoid the configuration
     directory being empty after installation. [Paul Sutton]
     PR#3767, 3800, 3827, 3850, 3900, 3953, 3988

  *) WIN32: Binary installer now creates Start menu options to start
     and stop Apache as a console application and to uninstall
     the Apache service on NT. [Paul Sutton] PR#3741

  *) WIN32: Apache.exe now contains an icon. [Paul Sutton]

  *) PORT: Switch back to using fcntl() locking on Linux -- instabilities
     have been reported with flock() locking (probably related to kernel
     version).  [Dean Gaudet] PR#2723, 3531

  *) Using APACI, the main config file (usually httpd.conf) was
     not being adjusted as $(TARGET).conf. [Wilfredo Sanchez
     <wsanchez@apple.com>]

  *) PORT: AIX does not require the SHARED_CODE "hack"
     [Ryan Bloom <rbb@raleigh.ibm.com>]

  *) Set-Cookie headers were being doubled up for some CGIs by the O(n^2)
     avoidance code added in 1.3.3.
     [Dean Gaudet, Jeff Lewis <lewis@stanford.edu>] PR#3872

  *) ap_isxdigit was somehow neglected when adding the ap_isfoo() macros
     for 8-bit safeness.  [Dean Gaudet]

  *) PORT: Use -fPIC instead of -fpic on Solaris and SunOS for compiling DSOs
     because SPARCs have a small machine-specific maximum size for the Global
     Offset Table which is often exceeded when compiling one of the larger
     third-party modules with Apache. [Peter Urban <Peter.Urban@epfl.ch>] PR#3977

  *) Move the directive `ExtendedStatus' in httpd.conf-dist-win _after_ the
     DSO/DLL section because it's a directive from mod_status and isn't
     available before the DLL of mod_status is loaded.
     [Martin POESCHL <mpoeschl@gmx.net>] PR#3936

  *) SECURITY: Fix a bug in the calculation of the buffer size for the line 
     continuation facility in Apache's configuration files which could 
     lead to a buffer overflow situation.
     [Thomas Devanneaux <Thomas.Devanneaux@enst.fr>] PR#3617

  *) Make documentation and error messages of APACI's --activate-module=FILE 
     option more clear. [Jan Wolter <janc@wwnet.net>] PR#3995