You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2001/03/12 20:01:53 UTC

cvs commit: apache-site/dist Announcement2.html Announcement2.txt

rbb         01/03/12 11:01:52

  Modified:    dist     Announcement2.html Announcement2.txt
  Log:
  Update the 2.0 Announcements
  
  Revision  Changes    Path
  1.8       +521 -397  apache-site/dist/Announcement2.html
  
  Index: Announcement2.html
  ===================================================================
  RCS file: /home/cvs/apache-site/dist/Announcement2.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -d -b -w -u -r1.7 -r1.8
  --- Announcement2.html	2000/11/20 22:24:56	1.7
  +++ Announcement2.html	2001/03/12 19:01:44	1.8
  @@ -1,9 +1,15 @@
   <PRE>
  -Apache 2.0alpha8 Released
  --------------------------
  +Apache 2.0.14 Released as alpha
  +-------------------------------
   
  -The Apache Group is pleased to announce the release of the seventh public
  -alpha release of Apache 2.0.  
  +The Apache Group is proud to announce the release the fourteenth release
  +of Apache 2.0.  This release is the first release to use our new release
  +process.  This process allows the Apache developers to more easily
  +determine the quality of any release.  Instead of tagging any release
  +as an alpha or beta from now on, all releases will be available as
  +numbered releases, and the release status will only be available in the
  +tarball name.  More information is available on this process in the
  +Apache development archives.
   
   Apache 2.0 offers numerous enhancements, improvements and performance
   boosts over the 1.3 codebase. The most visible and noteworthy addition
  @@ -14,25 +20,13 @@
   we have also added support for filtered I/O.  This allows modules to modify
   the output of other modules before it is sent to the client.  This release also
   greatly improves the performance and robustness of Apache on the
  -Microsoft Windows Operating Systems.  Lastly we are proud to announce
  -support for BeOS in this version of the server.
  -
  -Included in this alpha is a pre-alpha version of mod_proxy.  Mod_proxy
  -is not at the same level as the rest of the server, and should be enabled
  -only by people who are very interested in working with the code.
  -
  -Apache 2.0a8 under UNIX has undergone some testing, but there are some
  -known issues in the current release (hey, it is an "alpha" for a
  -reason!). It is intended for developers and experienced Apache HTTPD
  -administrators to play around with and work on. It is not a production
  -release. If you do not feel comfortable compiling and working with
  -code, the Apache Group strongly recommends that you wait for a more
  -stable beta release before you try this version.
  +Microsoft Windows Operating Systems.  This alpha includes support for IPv6
  +on all platforms that support IPv6.
   
  -Apache 2.0a8 under Windows has undergone some testing as well.  There
  -are known issues in the current release with regards to Apache on windows
  -95 and 98.  We are working through those problems, and hope to have them
  -fixed for future releases of the 2.0 alpha.
  +This version of Apache is known to work on many versions of Unix, BeOS,
  +OS/2, and Windows.  Because of many of the advancements in Apache 2.0,
  +the initial release of Apache is expected to perform equally well on all 
  +supported platforms.
   
   There are new snapshots of the Apache httpd source available every 6
   hours from http://dev.apache.org/from-cvs/apache-2.0/ - please
  @@ -48,387 +42,517 @@
   
   For more information, please check out http://www.apache.org/httpd.html
   
  -Changes with Apache 2.0a8
  -  *) Add a directive to mod_mime so that filters can be associated with
  -     a given mime-type.
  -     [Ryan Bloom]
  +Known problems with Apache 2.0.14
   
  -  *) Get multi-views working again.  We were setting the path_info
  -     field incorrectly if we couldn't find the specified file.
  -     [Ryan Bloom]
  +  *) WARNING: Apache 2.0b1 is not expected to run on Windows 95, 98 or ME.
  +     The intitial production release of Apache 2.0 is expected to run on
  +     these consumer operating systems, but they cannot be recommended as
  +     production environments due to the lack of integrated security and
  +     robustness.
   
  -  *) Fix 304 processing.  The core should never try to send the headers
  -     down the filter stack.  Always, just setup the table in the request
  -     record, and let the header filter convert it to data that is ready
  -     for the network.
  -     [Ryan Bloom]
  +  *) The canonical paths are being overhauled.  This affects especially
  +     Win32 users with this release.  Due to this transitional state,
  +     file with names containing non-ASCII characters may refuse serve.
  +     This is in preparation for the next release, users will be able to 
  +     serve any Unicode named files with Apache/Win32 on Windows NT/2000.
   
  -  *) More fixes for the proxy.  There are still bugs in the proxy code,
  -     but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
  -     successfully.
  -     [Ryan Bloom]
  +  *) Win32 users will see no message when Apache 2.0b1 is started as a
  +     console.  While normal for unix, this differs from the behavior in
  +     Apache 1.3 on Windows.
   
  -  *) Fix params for apr_getaddrinfo() call in connect proxy handler.
  -     [Chuck Murcko]
  +Changes with Apache 2.0.14
   
  -  *) APR: Add new apr_getopt_long function to handle long options.
  -     [B. W. Fitzpatrick <fi...@red-bean.com>]
  +  *) Fix content-length computation.  We ONLY compute a content-length if
  +     We are not in a 1.1 request and we cannot chunk, and this is a keepalive
  +     or we already have all the data.  [Ryan Bloom]
   
  -  *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
  -     Add generic apr_create_socket().  Add apr_getaddrinfo() for doing
  -     hostname resolution/address string parsing and building
  -     apr_sockaddr_t.  Add apr_get_sockaddr() for getting the address
  -     of one of the apr_sockaddr_t structures for a socket.  Change
  -     apr_bind() to take apr_sockaddr_t.  [David Reid and Jeff Trawick]
  +  *) Report unbounded containers in the config file.  Previously, a typo
  +     in the </container> directive could result in the rest of the config
  +     file being silently ignored, with undesired defaults used.
  +     [Jeff Trawick]
   
  -  *) Remove the BUFF from the HTTP proxy.  This is still a bit ugly, but
  -     I have proxied pages with it, cleanup will commence soon.
  +  *) Make the old_write filter use the ap_f* functions for the buffering.
        [Ryan Bloom]
   
  -  *) Make the proxy work with filters.  This isn't perfect, because we
  -     aren't dealing with the headers properly.  [Ryan Bloom]
  +  *) Move more code from the http module into the core server.  This
  +     is core code, basically the default handler, the default input
  +     and output filters, and all of the core configuration directives.
  +     All of this code is required in order for the server to work, with or
  +     without HTTP.  The server is closer to working without the HTTP
  +     module, although there is still more to do.  [Ryan Bloom]
   
  -  *) Do not send a content-length iff the C-L is 0 and this is a head
  -     request.  [Ryan Bloom]
  +  *) Fix a number of SGI compile warnings throughout the server.  Fix some
  +     bad parameters to apr_bucket_read().  Fix a bad statement in
  +     ap_method_in_list().  For the mod_rewrite cache use apr_time_t
  +     consistently; we were mixing apr_time_t and time_t in invalid ways
  +     before.  In load_file(), call apr_dso_error() instead of
  +     apr_strerror() so that we get a more specific string on some platforms.
  +     PR #6980  [Jeff Trawick]
   
  -  *) Make cgi-bin work as a regular directory when using mod_vhost_alias
  -     with no VirtualScriptAlias directives. PR#6829 [Tony Finch]
  +  *) Allow modules to query the MPM about it's execution profile.  This
  +     query API can and should be extended in the future, but for now,
  +     max_daemons, and threading or forking is a very good start.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]
  +  *) Modify mod_include to send blocks of data no larger than 9k.
  +     Without this, mod_include will wait until the whole file is parsed,
  +     or the first tag is found to send any data to the client.
  +     [Paul J. Reder <re...@raleigh.ibm.com>]
   
  -  *) Get the default_handler to stop trying to deal with HEAD requests.
  -     The idea is to let the content-length filter compute the C-L before
  -     we try to send the data.  If we can get the C-L correctly, then we
  -     should send it in the HEAD response.
  -     [Ryan Bloom]
  +  *) Fix mod_info, so that <Directory> and <Location> directives are
  +     not displayed twice when displaying the current configuration.
  +     [Ryan Morgan <rm...@covalent.net>]
   
  -  *) The Header filter can now determine if a body should be sent based
  -     on r->header_only.  The general idea of this is that if we delay
  -     deciding to send the body, then we might be able to compute the
  -     content-length correctly, which will help caching proxies to cache
  -     our data better.  Any handler that doesn't want to try to compute
  -     the content-length can just send an EOS bucket without data and
  -     everything will just work.
  +  *) Add config directives to override DEFAULT_ERROR_MSG and
  +     DEFAULT_TIME_FORMAT.  This was sent in as PR 6193.
  +     [Dan Rench <dr...@xnet.com>]
  + 
  +  *) Get mod_info building and loading on Win32.  [William Rowe]
  + 
  +  *) Begin to move protocol independant functions out of mod_http.  The goal
  +     is to have only functions that are HTTP specific in the http directory.
        [Ryan Bloom]
   
  -  *) Add the referer to the error log if one is available.
  -     [Markus Gyger <mg...@itr.ch>]
  +Changes with Apache 2.0.13 (not released)
   
  -  *) Mod_info.c has now been ported to Apache 2.0.  As a part of this
  -     change, the root of the configuration tree has been exposed to modules
  -     as ap_conftree.
  -     [Ryan Morgan <rm...@covalent.net>]
  +  *) Don't assume that there will always be multiple calls to the byterange
  +     filter.  It is possible that we will need to do byteranges with only
  +     one call to the filter.  [Ryan Morgan <rm...@covalent.net>]
   
  -  *) Get the core_output_filter to use the bucket interface directly.
  -     This keeps us from calling the content-length filter multiple times
  -     for a simple static request.
  -     [Ryan Bloom]
  +  *) Move the error_bucket definition from the http module to the
  +     core server.  Every protocol will need this ability, not just
  +     HTTP.  [Ryan Bloom]
   
  -  *) We are sending the content-type correctly now.
  -     [Ryan Bloom and Will Rowe]
  +Changes with Apache 2.0.12 (not released)
   
  -  *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report
  -     a bogus bytes-sent value when the only thing being sent was trailers
  -     and writev() returned an error (or EAGAIN).  [Jeff Trawick]
  +  *) Modify mod_file_cache to save pre-formatted strings for
  +     content-length and last-modified headers for performance.
  +     [Mike Abbot <mj...@trudge.engr.sgi.com>]
   
  -  *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again.  This uses the
  -     hints file to determine which platforms define
  -     SINGLE_LISTEN_UNSERIALIZED_ACCEPT.
  -     [Ryan Bloom]
  +  *) Namespace protect IOBUFSIZ since it is exposed in the API.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) APR: add apr_get_home_directory()  [Jeff Trawick]
  +  *) Use "Basic" authentication instead of "basic" in ab, as the spec
  +     says we should.  [Andre Breiler <an...@rd.bbc.co.uk>]
   
  -  *) Initial import of 1.3-current mod_proxy. [Chuck Murcko]
  +  *) Fix a seg fault in mod_userdir.c.  We used to use the pw structure
  +     without ever filling it out.  This fixes PR 7271.
  +     [Taketo Kabe <ka...@sra-tohoku.co.jp> and
  +      Cliff Woolley <cl...@yahoo.com>]
   
  -  *) Not all platforms have INADDR_NONE defined by default.  Apache
  -     used to make this check and define INADDR_NONE if appropriate,
  -     but APR needs the check too, and I suspect other applications will
  -     as well.  APR now defines APR_INADDR_NONE, which is always a valid
  -     value on all platforms.
  -     [Branko �ibej <br...@xbc.nu>]
  +  *) Add a couple of GCC attribute tags to printf style functions.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824.
  -     [Shuichi Kitaguchi <ki...@hh.iij4u.or.jp>]
  +  *) Add the correct language tag for interoperation with the Taiwanese
  +     versions of MSIE and Netscape. [Clive Lin <cl...@CirX.ORG>] PR#7142
   
  -  *) Relax the syntax checking of Host: headers in order to support
  -     iDNS. PR#6635 [Tony Finch]
  +  *) Migrate the perchild MPM to use the new apr signal child, and
  +     APR thread functions.  [Ryan Bloom]
   
  -  *) When reading from file buckets we convert to an MMAP if it makes
  -     sense.  This also simplifies the default handler because the
  -     default handler no longer needs to try to create MMAPs.
  -     [Ryan Bloom]
  +  *) Close one copy of the CGI's stdout before creating the new process.
  +     The CGI will still have stdout, because we have already dup'ed it.
  +     This keeps Apache from waiting forever to send the results of a CGI
  +     process that has forked a long-lived child process.
  +     [Taketo Kabe <ka...@sra-tohoku.co.jp>]
   
  -  *) BUFF has been removed from the main server.  The BUFF code will remain
  -     in the code until it has been purged from the proxy module as well.
  +  *) Remove the rest of the pthreads functions from the threaded MPM.
  +     This requires the APR support for a signal thread that was just
  +     added.  [Ryan Bloom]
  + 
  +  *) Make mod_dir use a fixup for sending a redirect to the browser.
  +     Before this, we were using a handler, which doesn't make much
  +     sense, because the handler wasn't generating any data, it would
  +     either return a redirect error code, or DECLINED.  This fits the
  +     current hooks better.  [Ryan Morgan <rm...@covalent.net>]
  + 
  +  *) Make the threaded MPM use APR threads instead of pthreads.
        [Ryan Bloom]
   
  -  *) Byteranges have been completely re-written to be a filter.  This
  -     has been tested, and I believe it is working correctly, but it could
  -     doesn't work for the Adobe Acrobat plug-in.  The output almost matches
  -     the output from 1.3, the only difference being that 1.3 includes
  -     a content-length in the response, and this does not.
  +  *) Get mod_tls to the point where it actually appears to work in all cases.
  +     [Ben Laurie]
  + 
  +  *) implement --enable-modules and --enable-mods-shared for "all" and
  +     "most".  [Greg Stein]
  + 
  +  *) Move the threaded MPM to use APR locks instead of pthread locks.
        [Ryan Bloom]
   
  -  *) APR read/write functions and bucket read functions now operate
  -     on unsigned integers, instead of signed ones.  It doesn't make
  -     any sense to use signed ints, because we return the error codes,
  -     so if we have an error we should report 0 bytes read or written.
  +  *) Rename mpmt_pthread to threaded.  This is more in line with the
  +     fact that mpmt_pthread shouldn't be using pthreads directly, and
  +     it is a smaller name that doesn't tie into anything.
        [Ryan Bloom]
   
  -  *) Always compute the content length, whether it is sent or not.
  -     The reason for this, is that it allows us to correctly report
  -     the bytes_sent when logging the request.  This also simplifies
  -     content-length filter a bit, and fixes the actual byte-reporing
  -     code in mod_log_config.c
  +  *) Rename the module structures so that the exported symbol matches
  +     the file name, and it is easier to automate the installation
  +     process (generating LoadModule directives from the module filenames).
  +     [Martin Kraemer]
  + 
  +  *) Remove the coalesce filter.  With the ap_f* functions, this filter
  +     is no longer needed. [Ryan Bloom]
  + 
  +Changes with Apache 2.0.11 (not released)
  + 
  +  *) Remove the dexter MPM.  Perchild is the same basic idea, but it has the
  +     added feature of allowing a uid/gid per child process.  If no
  +     uid/gid is specified, then Perchild behaves exactly like dexter.
        [Ryan Bloom]
   
  -  *) Remove AP_END_OF_BRIGADE definition.  This does not signify what
  -     it says, because it was only used by EOS and FLUSH buckets.  Since
  -     neither of those are required at the end of a brigade, this was
  -     really signifying FLUSH_THE_DATA, but that can be determined better
  -     by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH.  EOS and FLUSH
  -     buckets now return a length of 0, which is actually the amount of data
  -     read, so they make more sense.
  +  *) Get perchild building again. [Ryan Bloom]
  + 
  +  *) Don't disable threads just because we are using the prefork MPM.
  +     If somebody wants to compile without threads, they must now add
  +     --disable-threads to the configure command line.  [Ryan Bloom]
  + 
  +  *) Begin to move the calls to update_child_status into common code, so
  +     that each individual MPM does not need to update the scoreboard itself.
        [Ryan Bloom]
   
  -  *) Allow the core_output_filter to save some data past the end of a
  -     request.  If we get an EOS bucket, we only send the data if it
  -     makes sense to send it.  This allows us to pipeline request
  -     responses.  As a part of this, we also need to allocate mmap
  -     buckets out of the connection pool, not the request pool.  This
  -     allows the mmap to outlive the request.
  +  *) Allow mod_tls to compile under Unix boxes where openssl has been
  +     installed to the system include files.
  +     [Gomez Henri <ne...@slib.fr>]
  + 
  +  *) Cleanup the mod_tls configure process.  This should remove any need
  +     to hand-edit any files.  We require OpenSSL 0.9.6 or later, but
  +     configure doesn't check that yet.  [Ryan Bloom]
  + 
  +  *) Add a very early prototype of SSL support (in mod_tls.c). It is
  +     vital that you read modules/tls/README before attempting to build
  +     it. [Ben Laurie]
  + 
  +  *) Fix a potential seg fault on all platforms.  David Reid fixed this
  +     on BEOS, but the problem could happen anywhere, so we don't want
  +     to #ifdef it. [Cliff Woolley <cl...@yahoo.com>]
  + 
  +  *) Add new LogFormat directive, %D, to log time it takes to serve a
  +     request in microseconds. [Bill Stoddard]
  + 
  +  *) Change AddInputFilter and AddOutputFilter to SetInputFilter and
  +     SetOutputFilter.  This corresponds nicely with the other Set
  +     directives, which operate on containers while the Add* directives
  +     tend to work directly on extensions.  [Ryan Bloom]
  + 
  +  *) Cleanup the header handling a bit.  This uses the apr_brigade_*
  +     functions for the buffering so that we don't need to compute
  +     the length of the headers before we actually create the header
  +     buffer.  [Ryan Bloom]
  + 
  +  *) Allow filters to buffer data using the ap_f* functions.  These have
  +     become macros that resolve directly to apr_brigade_*.
        [Ryan Bloom]
   
  -  *) Make blocking and non-blocking bucket reads work correctly for
  -     sockets and pipes.  These are the only bucket types that should
  -     have non-blocking reads, because the other bucket types should
  -     ALWAYS be able to return something immediately.
  +  *) Get the Unix MPM's to do a graceful restart again.  If we are going
  +     to register a cleanup with ap_cleanup_scoreboard, then we have to
  +     kill the cleanup with the same function,  and that function can't be
  +     static.  [Ryan Bloom]
  + 
  +  *) Install all required header files.  Without these, it was not
  +     possible to compile some modules outside of the server.
        [Ryan Bloom]
   
  -  *) In the Apache/Win32 console window, accept Ctrl+C to stop the
  -     server, but use Ctrl+Break to initiate a graceful restart
  -     instead of duplicating behavior. [John Sterling]
  +  *) Fix the AliasMatch directive in Apache 2.0.  When we brought a patch
  +     forward from 1.3 to 2.0, we missed a single line, which broke regex
  +     aliases.  [Ryan Bloom]
   
  -  *) Patch mod_autoindex to set the Last-Modified header based on
  -     the directory's mtime, and add the ETag header.  [William Rowe]
  +  *) We have a poor abstraction in the protocol.  This is a temporary
  +     hack to fix the bug, but it will need to be fixed for real.  If
  +     we find an error while sending out a custom error response, we back
  +     up to the first non-OK request and send the data.  Then, when we send
  +     the EOS from finalize_request_protocol, we go to the last request,
  +     to ensure that we aren't sending an EOS to a request that has already
  +     received one.  Because the data is sent on a different request than
  +     the EOS, the error text never gets sent down the filter stack.  This
  +     fixes the problem by finding the last request, and sending the data
  +     with that request.  [Ryan Bloom]
   
  -  *) Merge the 1.3 patch to add support for logging query string in
  -     such a way that "%m %U%q %H" is the same as "%r".
  -     [Bill Stoddard]
  +  *) Make the server status page show the correct restart time, and
  +     thus the proper uptime. [Ryan Bloom]
   
  -  *) Port three log methods from mod_log_config 1.3 to 2.0:
  -     CLF compliant '-' byte count, method and protocol.
  -     [Bill Stoddard]
  +  *) Move the CGI creation logic from mod_include to mod_cgi(d).  This
  +     should reduce the amount of duplicate code that is required to
  +     create CGI processes.
  +     [Paul J. Reder <re...@raleigh.ibm.com>]
   
  -  *) Add a new LogFormat directive, %c, that will log connection
  -     status at the end of the response as follows:
  -     'X' - connection aborted before the response completed.
  -     '+' - connection may be kept-alive by the server.
  -     '-' - connection will be closed by the server.
  -     [Bill Stoddard]
  +  *) ap_new_connection() closes the socket and returns NULL if a socket
  +     call fails.  Usually this is due to a connection which has been
  +     reset.  [Jeff Trawick]
   
  -  *) Expand APR for WinNT to fully accept and return utf-8 encoded
  -     Unicode file names and paths for Win32, and tag the Content-Type
  -     from mod_autoindex to reflect that charset if the the feature
  -     macro APR_HAS_UNICODE_FS is true.  [William Rowe]
  +  *) Move the Apache version information out of httpd.h and into release.h.
  +     This is in preparation for the first tag with the new tag and release
  +     system.  [Ryan Bloom]
   
  -  *) Compute the content length (and add appropriate header field) for
  -     the response when no content length is available and we can't use
  -     chunked encoding.  [Jeff Trawick]
  +  *) Begin restructuring scoreboard code to enable adding back in
  +     the ability to use IPC other than shared memory.
  +     Get mod_status working on Windows again. [Bill Stoddard]
   
  -  *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK,
  -     so that content input filters get dechunked data when using
  -     the default handler. Also removed REQUEST_CHUNKED_PASS.
  -     [Sascha Schumann]
  +  *) Make mod_status work with 2.0.  This will work for prefork,
  +     mpmt_pthread, and dexter.  [Ryan Bloom]
   
  -  *) Add mod_ext_filter as an experimental module.  This module allows
  -     the administrator to use external programs as filters.  Currently,
  -     only filtering of output is supported.  [Jeff Trawick]
  +  *) Correct a typo in httpd.conf.
  +     [Kunihiro Tanaka <ta...@apache.or.jp>] PR#7154
   
  -  *) Most Apache functions work on EBCDIC machines again, as protocol
  -     data is now translated (again).  [Jeff Trawick]
  +  *) Really fix mod_rewrite map lookups this time. [Tony Finch]
   
  -  *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
  -     the EBCDIC support.  They are noops on ASCII machines, so this
  -     type of translation doesn't have to be surrounded by #ifdef
  -     CHARSET_EBCDIC.  [Jeff Trawick]
  +  *) Get the correct IP address if ServerName isn't set and we can't
  +     find a fully-qualified domain name at startup.
  +     PR#7170 [Danek Duvall <dd...@eng.sun.com>]
   
  -  *) Fix mod_include.  tag commands work again, and the server will
  -     send the FAQ again.  This also allows mod_include to set aside
  -     buckets that include partial buckets.
  -     [Ryan Bloom and David Reid]
  +  *) Make mod_cgid work with SuExec.  [Ryan Bloom]
   
  -  *) Add suexec support back.  [Manoj Kasichainula]
  +  *) Adopt apr user/group name features for mod_rewrite.  Eliminates some
  +     'extra' stat's for user/group since they should never occur, and now
  +     resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
  +     volumes.  [William Rowe]
   
  -  *) Lingering close now uses the socket directly instead of using
  -     BUFF.  This has been tested, but since all we can tell is that it
  -     doesn't fail, this needs to be really hacked on.
  +  *) Adopt apr features to simplify mod_includes.  This changes the
  +     behavior of the USER_NAME variable, unknown uid's are now reported
  +     as USER_NAME="<unknown>" rather than the old user#000 result.
  +     WinNT now resolves USER_NAME on NTFS volumes.  [William Rowe]
  + 
  +  *) Adopt apr features for simplifing mod_userdir, and accept the new
  +     Win32/OS2 exceptions without hiccuping.  [William Rowe]
  + 
  +  *) Replace configure --with-optim option by using and saving the
  +     environment variable OPTIM instead.  This is needed because configure
  +     options do not support multiple flags separated by spaces.
  +     [Roy Fielding]
  + 
  +  *) Fix some byterange handling.  If we get a byte range that looks like
  +     "-999999" where that is past the end of the file, we should return
  +     a PARTIAL CONTENT status code, and return the whole file as one big
  +     byterange.  This matches the 1.3 handling now.  [Ryan Bloom]
  + 
  +  *) Make the error bucket a real meta-data bucket.  This means that the
  +     bucket length is 0, and a read returns NULL data.  If one of these
  +     buckets is passed down after the headers are sent, this data will
  +     just be ignored.  [Greg Stein]
  + 
  +  *) The prefork MPM wasn't killing child processes correctly if a restart
  +     signal was received while the process was serving a request.  The child
  +     process would become the equivalent of a second parent process.  If
  +     we break out of the accept loop, then we need to do die after cleaning
  +     up after ourselves.  [Ryan Bloom]
  + 
  +  *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful
  +     restarts.  [Ryan Bloom]
  + 
  +  *) Modify the apr_stat/lstat/getfileinfo calls within apache to use
  +     the most optimal APR_FINFO_wanted bits.  This spares Win32 from
  +     performing very expensive owner, group and permission lookups
  +     and allows the server to function until these apr_finfo_t fields
  +     are implemented under Win32.  [William Rowe]
  + 
  +  *) Support for typedsafe optional functions - that is functions exported by
  +     optional modules, which, therefore, may or may not be present, depending 
  +     on configuration. See the experimental modules mod_optional_fn_{ex,im}port
  +     for sample code. [Ben Laurie]
  + 
  +  *) filters can now report an HTTP error to the server.  This is done
  +     by sending a brigade where the first bucket is an error_bucket.
  +     This bucket is a simple bucket that stores an HTTP error and
  +     a string.  Currently the string is not used, but it may be needed
  +     to output an error log.  The http_header_filter will find this
  +     bucket, and output the error text, and then return
  +     AP_FILTER_ERROR, which informs the server that the error web page
  +     has already been sent.  [Ryan Bloom]
  + 
  +  *) If we get an error, then we should remove all filters except for
  +     those critical to serving a web page.  This fixes a bug, where
  +     error pages were going through the byterange filter, even though
  +     that made no sense.  [Ryan Bloom]
  + 
  +  *) Relax the syntax checking of Host: headers in order to support
  +     iDNS. PR#6635 [Tony Finch]
  + 
  +  *) Cleanup the byterange filter to use the apr_brigade_partition
  +     and apr_bucket_copy functions.  This removes a lot of very messy
  +     code, and hopefully makes this filter more stable.
        [Ryan Bloom]
   
  -  *) Allow filters to modify headers and have those headers be sent to
  -     the client.  The idea is that we have an http_header filter that
  -     actually sends the headers to the network.  This removes the need
  -     for the BUFF to send headers.
  +  *) Remove AddModule and ClearModuleList directives.  Both of these
  +     directives were used to ensure that modules could be enabled
  +     in the correct order.  That requirement is now gone, because
  +     we use hooks to ensure that modules are in the correct order.
        [Ryan Bloom]
   
  -  *) Charset translation: mod_charset_lite handles translation of
  -     request bodies.  Get rid of the xlate version of ap_md5_digest()
  -     since we don't compute digests of filtered (e.g., translated)
  -     response bodies this way anymore.  (Note that we don't do it at
  -     all at the present; somebody needs to write a filter to do so.)
  -     [Jeff Trawick]
  +  *) When SuExec is specified, we need to add it to the list of
  +     targets to be built.  If we don't, then any changes to the
  +     configuration won't affect SuExec, unless 'make suexec' is
  +     specifically run.  [Ryan Bloom]
   
  -  *) Input filters and ap_get_brigade() now have a input mode parameter
  -     (blocking, non-blocking, peek) instead of a length parameter.
  -     [hackathon]
  +  *) Cleaned out open_file from mod_file_cache, as apr now accepts
  +     the APR_XTHREAD argument to open a file for consumption by
  +     parallel threads on win32.  [William Rowe]
   
  -  *) Update the mime.types file to the registered media types as
  -     of 2000-10-19. PR#6613 [Carsten Klapp <ca...@home.net>,
  -     Tony Finch]
  +  *) Correct a bug in determining when we follow symlinks.  The code
  +     expected a stat -1 result, not an apr_status_t positive error.
  +     Also check if the APR_FINFO_USER fields are valid before we
  +     follow the link.  [William Rowe]
   
  -  *) Namespace protect some macros declared in ap_config.h
  -     [Ryan Bloom]
  +  *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to
  +     mpm_common.c.  These functions are only valid on some platforms,
  +     so they should not be in the main-line code. [Ryan Bloom]
   
  -  *) Support HTTP header line folding with input filtering.
  -     [Greg Ames]
  +  *) Remove ap_chdir_file().  This function is not thread-safe,
  +     and nobody is currently using it.  [Ryan Bloom]
   
  -  *) Mod_include works again.  This should still be re-written, but at
  -     least now we can serve an SHTML page again.
  +  *) Do not try to run make depend if there are no .c files in the
  +     current directory, doing so makes `make depend` fail.
        [Ryan Bloom]
   
  -  *) Begin to remove BUFF from the core.  Currently, we keep a pointer
  -     to both the BUFF and the socket in the conn_rec.  Functions that
  -     want to use the BUFF can, functions that want to use the socket,
  -     can.  They point to the same place.
  -     [Ryan Bloom]
  +   *) Update highperformance.conf to work with either prefork or
  +      pthreads mpms.  [Greg Ames]
   
  -  *) apr_psprintf doesn't understand %lld as a format.  Make it %ld.
  -     [Tomas "�gren" <st...@ing.umu.se>]
  +  *) Stop checking to see if this is a pipelined request if we know
  +     for a fact that it isn't.  Basically, if r->connection->keepalive == 0.
  +     This keeps us from making an extra read call when serving a 1.0
  +     request.  [Ryan Bloom and Greg Stein]
   
  -  *) APR pipes on Unix and Win32 are now cleaned up automatically when the
  -     associated pool goes away.  (APR pipes on OS/2 were already had this
  -     logic.)  This resolvs a fatal file descriptor leak with CGIs.
  +  *) Fix the handling of variable expansion look-ahead in mod_rewrite,
  +     i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of
  +     more complicated nested RewriteMap lookups. PR#7087 [Tony Finch]
  + 
  +  *) Fix the RFC number mentioned when complaining about a missing
  +     Host: header. PR#7079 [Alexey Toptygin <al...@wam.umd.edu>]
  + 
  +  *) Fix an endless loop in ab which occurred when ab was posting
  +     and the server dropped the connection unexpectedly.
        [Jeff Trawick]
   
  -  *) The final line of the config file was not being read if there was
  -     no \n at the end of it.  This was caused by apr_fgets returning
  -     APR_EOF even though we had read valid data.  This is solved by
  -     making cfg_getline check the buff that was returned from apr_fgets.
  -     If apr_fgets return APR_EOF, but there was data in the buf, then we
  -     return the buf, otherwise we return NULL.
  -     [Ryan Bloom]
  +  *) Fix a segfault while handling request bodies in ap_http_filter().
  +     This problem has been seen with mod_dav usage as well as with
  +     requests where the body was just being discarded.  [Jeff Trawick]
   
  -  *) Piped logs work again in the 2.0 series.
  -     [Ryan Bloom]
  +  *) Some adjustment on the handling and automatic setting (via
  +     hints.m4) of various compilation flags (eg: CFLAGS). Also,
  +     add the capability to specify flags (NOTEST_CFLAGS and
  +     NOTEST_LDFLAGS) which are used to compile Apache, but
  +     not used during the configuration process. Useful for
  +     flags like "-Werror". [Jim Jagielski] 
   
  -  *) Restore functionality broken by the mod_rewrite security fix:
  -     rewrite map lookup keys and default values are now expanded
  -     so that the lookup can depend on the requested URI etc.
  -     PR #6671 [Tony Finch]
  +  *) Stop using environment variables to force debug mode or
  +     no detach.  We now use the -D command line argument to
  +     specify the correct mode.  -DONE_PROCESS and -DNO_DETACH.
  +     [Greg Stein, Ryan Bloom]
   
  -  *) Tighten up the syntax checking of Host: headers to fix a
  -     security bug in some mass virtual hosting configurations
  -     that can allow a remote attacker to retrieve some files
  -     on the system that should be inaccessible. [Tony Finch]
  +  *) Change handlers to use hooks. [Ben Laurie]
   
  -  *) Add a pool bucket type.  This bucket is used for data allocated out
  -     of a pool.  If the pool is cleaned before the bucket is destroyed, then
  -     the data is converted to a heap bucket, allowing it to survive the
  -     death of the pool.
  +  *) Stop returning copies of filenames from both apr_file_t and
  +     apr_dir_t.  We pstrdup the filenames that we store in the
  +     actual structures, so we don't need to pstrdup the strings again.
        [Ryan Bloom]
   
  -  *) Add a flush bucket.  This allows modules to signal that the filters
  -     should all flush whatever data they currently have.  There is no way
  -     to actually force them to do this, so if a filter ignores this bucket,
  -     that's life, but at least we can try with this.
  -     [Ryan Bloom]
  +  *) mod_cgi: Fix some problems where the wrong error value was being
  +     traced.  [Jeff Trawick]
   
  -  *) Add an output filter for sub-requests.  This filter just strips the
  -     EOS bucket so that we don't confuse the main request's core output
  -     filter by sending multiple EOS buckets.  This change also makes sub
  -     requests start to send EOS buckets when they are finished.
  +  *) EBCDIC: Fix some missing ASCII conversion on some protocol data.
  +     [Jeff Trawick]
  + 
  +  *) Add generic hooks. [Ben Laurie]
  + 
  +  *) Use a real pool to dup the error log descriptor.  [Ryan Bloom]
  + 
  +  *) Fix a segfault caused by mod_ext_filter when the external filter
  +     program does not exist. [Jeff Trawick]
  + 
  +  *) Fix an output truncation error when on an HTTP >= 1.0 request an
  +     object of size between DEFAULT_BUCKET_SIZE and AP_MIN_BYTES_TO_WRITE
  +     was served through mod_charset_lite (or anything else that would
  +     create a transient bucket in this size range).  ap_bucket_make_heap()
  +     silently failed (fixed), transient_setaside() discovered it, but
  +     ap_save_brigade() ignored it (fixed). [Jeff Trawick]
  + 
  +  *) Ignore \r\n or \n when using PEEK mode for input filters.  The problem
  +     is that some browsers send extra lines at the end of POST requests, and
  +     we don't want to delay sending data back to the user just because the
  +     browser isn't well behaved. [Ryan Bloom]
  + 
  +  *) Get SuEXEC working again.  We can't send absolute paths to suExec
  +     because it refuses to execute those programs.  SuEXEC also wasn't
  +     always recognizing configuration changes made using the autoconf
  +     setup.  [Ryan Bloom]
  + 
  +  *) Allow the buildconf process to find the config.m4 files in the correct
  +     order.  Basically, we can now name config.m4 files as config\d\d.m4,
  +     and we will sort them correctly when inserting them into the build
  +     process.  [Ryan Bloom]
  + 
  +  *) Get mod_cgid to use apr calls for creating the actual CGI process.
  +     This also allows mod_cgid to use ap_os_create_priviledged_process,
  +     thus allowing for SuExec execution from mod_cgid.  Currently, we do
  +     not support everything that standard SuExec supports, but at least
  +     it works minimally now. [Ryan Bloom]
  + 
  +  *) Allow SuExec to be configured from the ./configure command line.
        [Ryan Bloom]
   
  -  *) Make ap_bucket_(read|destroy|split|setaside) into macros.  Also
  -     makes ap_bucket_destroy a return void, which is okay because it
  -     used to always return APR_SUCCESS, and nobody ever checked its
  -     return value anyway.
  +  *) Update some of the docs in README and INSTALL to reflect some of
  +     the changes in Apache 2.0 [Cliff Woolley <cl...@yahoo.com>]
  + 
  +  *) If we get EAGAIN returned from the call to apr_sendfile, then we
  +     need to call sendfile again.  This gets us serving large files
  +     such as apache_2.0a9.tar.gz on FreeBSD again. [Ryan Bloom]
  + 
  +  *) Get the support programs building cleanly again.
        [Cliff Woolley <cl...@yahoo.com>]
   
  -  *) Remove the index into the bucket-type table from the buckets
  -     structure.  This has now been replaced with a pointer to the
  -     bucket_type.  Also add some macros to test the bucket-type.
  -     [Ryan Bloom]
  +  *) The Apache/Win32 Apache.exe and dll's now live in bin.  The
  +     current directory logic now backs up over bin/ to determine the
  +     server root from the Apache.exe path.
   
  -  *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
  -     for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
  -     and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
  -     All _VAR_ flavors changes to _DATA to be absolutely clear.
  -     [William Rowe]
  +  *) Apache/Win32 now follows the standard conventions of mod_foo.so
  +     loadable modules, dynamic libs are all named libfoo.dll, and the
  +     makefile.win populates the include, lib and libexec directories.
   
  -  *) Add support for /, //, //servername and //server/sharename
  -     parsing of <Directory> blocks under Win32 and OS2.
  -     [Tim Costello, William Rowe, Brian Harvard]
  +  *) Apache is now IPv6-capable.  On systems where APR supports IPv6,
  +     Apache gets IPv6 listening sockets by default.  Additionally, the
  +     Listen, NameVirtualHost, and <VirtualHost> directives support IPv6
  +     numeric address strings (e.g., "Listen [fe80::1]:8080").
  +     [Jeff Trawick]
   
  -  *) Remove the function pointers from the ap_bucket type.  They have been
  -     replaced with a global table.  Modules are allowed to register bucket
  -     types and use then use those buckets.
  -     [Ryan Bloom]
  +  *) Modify the install directory layout.  Modules are now installed in
  +     modules/.  Shared libraries should be installed in libraries/, but
  +     we don't have any of those on Unix yet.  All install directories
  +     are modifyable at configure time. [Ryan Bloom]
   
  -  *) mod_cgid: In the handler, shut down the Unix socket (only for write)
  -     once we finish writing the request body to the cgi child process;
  -     otherwise, the client doesn't hit EOF on stdin.  Small request bodies
  -     worked without this change (for reasons I don't understand), but large
  -     ones didn't.  [Jeff Trawick]
  +  *) Install all header files in the same directory on Unix. [Ryan Bloom]
   
  -  *) Remove file bucket specific information from the ap_bucket type.
  -     This has been moved to a file_bucket specific type that hangs off
  -     the data pointer in the ap_bucket type.
  +  *) Get the functions in server/linked into the server, regardless of
  +     which modules linked into the server.  This uses the same hack
  +     for Apache that we use for APR and apr-util to ensure all of the
  +     necessary functions are linked.  As a part of thise, the CHARSET_EBCDIC
  +     was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make
  +     the scripts a bit easier.
        [Ryan Bloom]
   
  -  *) Input filtering now has a third argument.  This is the amount of data
  -     to read from lower filters.  This argument can be -1, 0, or a positive
  -     number.  -1 means give me all the data you have, I'll deal with it and
  -     let you know if I need more.  0 means give me one line and one line
  -     only.  A positive number means I want no more than this much data.
  +  *) Rework the RFC1413 handling to make it thread-safe, use a timeout
  +     on the query, and remove IPv4 dependencies.  [Jeff Trawick]
   
  -     Currently, only 0 and a positive number are implemented.  This allows
  -     us to remove the remaining field from the conn_rec structure, which
  -     has also been done.
  +  *) Get all of the auth modules to the point that they will install and
  +     be loadable into the server.  Our new build/install mechanism expects
  +     that all modules will have a common name format.  The auth modules
  +     didn't use that format, so we didn't install them properly.
        [Ryan Bloom]
   
  -  *) Big cleanup of the input filtering.  The goal is that http_filter
  -     understands two conditions, headers and body.  It knows where it is
  -     based on c->remaining.  If c->remaining is 0, then we are in headers,
  -     and http_filter returns a line at a time.  If it is not 0, then we are
  -     in body, and http_filter returns raw data, but only up to c->remaining
  -     bytes.  It can return less, but never more.
  -     [Greg Ames, Ryan Bloom, Jeff Trawick]
  -
  -  *) mod_cgi: Write all of the request body to the child, not just what
  -     the kernel would accept on the first write.  [Jeff Trawick]
  +  *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer
  +     available.  Use apr_getaddrinfo() instead.  [Jeff Trawick]
   
  -  *) Back out the change that moved the brigade from the core_output_filters
  -     ctx to the conn_rec.  Since all requests over a given connection
  -     go through the same core_output_filter, the ctx pointer has the
  -     correct lifetime.
  -     [Ryan Bloom]
  +  *) Get "NameVirtualHost *" working in 2.0.  [Ryan Bloom]
   
  -  *) Fix another bug in the send_the_file() read/write loop. A partial
  -     send by apr_send would cause unsent data in the read buffer to
  -     get clobbered. Complete making send_the_file handle partial
  -     writes to the network.
  -     [Bill Stoddard]
  +  *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
  +     after the end of the response. [Ryan Bloom]
   
  -  *) Fix a couple of type fixes to allow compilation on AIX again
  -     [Victor J. Orlikowski <v....@gte.net>]
  +  *) Get byterange requests working with responses that do not have a
  +     content-length.  Because of the way byterange requests work, we have to
  +     have all of the data before we can actually do the byterange, so we
  +     can compute the content-length in the byterange filter.
  +     [Ryan Bloom]
   
  -  *) Fix bug in send_the_file() which causes offset to be ignored
  -     if there are no headers to send.
  -     [Bill Stoddard]
  +  *) Get exe CGI's working again on Windows.
  +     [Allan Edwards]
   
  -  *) Handle APR_ENOTIMPL returned from apr_sendfile in the core
  -     filter. Useful for supporting Windows 9* with a binary
  -     compiled on Windows NT.
  -     [Bill Stoddard]
  +  *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
  +     they keep track of whether or not their  post config hook has been
  +     called before.  Instead of a static variable (which is replaced when
  +     the DSO is loaded a second time), use userdata in the process pool.
  +     [Jeff Trawick]
   </PRE>
  
  
  
  1.7       +521 -398  apache-site/dist/Announcement2.txt
  
  Index: Announcement2.txt
  ===================================================================
  RCS file: /home/cvs/apache-site/dist/Announcement2.txt,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -b -w -u -r1.6 -r1.7
  --- Announcement2.txt	2000/11/20 22:24:56	1.6
  +++ Announcement2.txt	2001/03/12 19:01:46	1.7
  @@ -1,9 +1,15 @@
   
  -Apache 2.0alpha8 Released
  --------------------------
  +Apache 2.0.14 Released as alpha
  +-------------------------------
   
  -The Apache Group is pleased to announce the release of the seventh public
  -alpha release of Apache 2.0.  
  +The Apache Group is proud to announce the release the fourteenth release
  +of Apache 2.0.  This release is the first release to use our new release
  +process.  This process allows the Apache developers to more easily
  +determine the quality of any release.  Instead of tagging any release
  +as an alpha or beta from now on, all releases will be available as
  +numbered releases, and the release status will only be available in the
  +tarball name.  More information is available on this process in the
  +Apache development archives.
   
   Apache 2.0 offers numerous enhancements, improvements and performance
   boosts over the 1.3 codebase. The most visible and noteworthy addition
  @@ -14,25 +20,13 @@
   we have also added support for filtered I/O.  This allows modules to modify
   the output of other modules before it is sent to the client.  This release also
   greatly improves the performance and robustness of Apache on the
  -Microsoft Windows Operating Systems.  Lastly we are proud to announce
  -support for BeOS in this version of the server.
  -
  -Included in this alpha is a pre-alpha version of mod_proxy.  Mod_proxy
  -is not at the same level as the rest of the server, and should be enabled
  -only by people who are very interested in working with the code.
  -
  -Apache 2.0a8 under UNIX has undergone some testing, but there are some
  -known issues in the current release (hey, it is an "alpha" for a
  -reason!). It is intended for developers and experienced Apache HTTPD
  -administrators to play around with and work on. It is not a production
  -release. If you do not feel comfortable compiling and working with
  -code, the Apache Group strongly recommends that you wait for a more
  -stable beta release before you try this version.
  +Microsoft Windows Operating Systems.  This alpha includes support for IPv6
  +on all platforms that support IPv6.
   
  -Apache 2.0a8 under Windows has undergone some testing as well.  There
  -are known issues in the current release with regards to Apache on windows
  -95 and 98.  We are working through those problems, and hope to have them
  -fixed for future releases of the 2.0 alpha.
  +This version of Apache is known to work on many versions of Unix, BeOS,
  +OS/2, and Windows.  Because of many of the advancements in Apache 2.0,
  +the initial release of Apache is expected to perform equally well on all 
  +supported platforms.
   
   There are new snapshots of the Apache httpd source available every 6
   hours from http://dev.apache.org/from-cvs/apache-2.0/ - please
  @@ -48,387 +42,516 @@
   
   For more information, please check out http://www.apache.org/httpd.html
   
  -Changes with Apache 2.0a8
  -  *) Add a directive to mod_mime so that filters can be associated with
  -     a given mime-type.
  -     [Ryan Bloom]
  +Known problems with Apache 2.0.14
   
  -  *) Get multi-views working again.  We were setting the path_info
  -     field incorrectly if we couldn't find the specified file.
  -     [Ryan Bloom]
  +  *) WARNING: Apache 2.0b1 is not expected to run on Windows 95, 98 or ME.
  +     The intitial production release of Apache 2.0 is expected to run on
  +     these consumer operating systems, but they cannot be recommended as
  +     production environments due to the lack of integrated security and
  +     robustness.
   
  -  *) Fix 304 processing.  The core should never try to send the headers
  -     down the filter stack.  Always, just setup the table in the request
  -     record, and let the header filter convert it to data that is ready
  -     for the network.
  -     [Ryan Bloom]
  +  *) The canonical paths are being overhauled.  This affects especially
  +     Win32 users with this release.  Due to this transitional state,
  +     file with names containing non-ASCII characters may refuse serve.
  +     This is in preparation for the next release, users will be able to 
  +     serve any Unicode named files with Apache/Win32 on Windows NT/2000.
   
  -  *) More fixes for the proxy.  There are still bugs in the proxy code,
  -     but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
  -     successfully.
  -     [Ryan Bloom]
  +  *) Win32 users will see no message when Apache 2.0b1 is started as a
  +     console.  While normal for unix, this differs from the behavior in
  +     Apache 1.3 on Windows.
   
  -  *) Fix params for apr_getaddrinfo() call in connect proxy handler.
  -     [Chuck Murcko]
  +Changes with Apache 2.0.14
   
  -  *) APR: Add new apr_getopt_long function to handle long options.
  -     [B. W. Fitzpatrick <fi...@red-bean.com>]
  +  *) Fix content-length computation.  We ONLY compute a content-length if
  +     We are not in a 1.1 request and we cannot chunk, and this is a keepalive
  +     or we already have all the data.  [Ryan Bloom]
   
  -  *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
  -     Add generic apr_create_socket().  Add apr_getaddrinfo() for doing
  -     hostname resolution/address string parsing and building
  -     apr_sockaddr_t.  Add apr_get_sockaddr() for getting the address
  -     of one of the apr_sockaddr_t structures for a socket.  Change
  -     apr_bind() to take apr_sockaddr_t.  [David Reid and Jeff Trawick]
  +  *) Report unbounded containers in the config file.  Previously, a typo
  +     in the </container> directive could result in the rest of the config
  +     file being silently ignored, with undesired defaults used.
  +     [Jeff Trawick]
   
  -  *) Remove the BUFF from the HTTP proxy.  This is still a bit ugly, but
  -     I have proxied pages with it, cleanup will commence soon.
  +  *) Make the old_write filter use the ap_f* functions for the buffering.
        [Ryan Bloom]
   
  -  *) Make the proxy work with filters.  This isn't perfect, because we
  -     aren't dealing with the headers properly.  [Ryan Bloom]
  +  *) Move more code from the http module into the core server.  This
  +     is core code, basically the default handler, the default input
  +     and output filters, and all of the core configuration directives.
  +     All of this code is required in order for the server to work, with or
  +     without HTTP.  The server is closer to working without the HTTP
  +     module, although there is still more to do.  [Ryan Bloom]
   
  -  *) Do not send a content-length iff the C-L is 0 and this is a head
  -     request.  [Ryan Bloom]
  +  *) Fix a number of SGI compile warnings throughout the server.  Fix some
  +     bad parameters to apr_bucket_read().  Fix a bad statement in
  +     ap_method_in_list().  For the mod_rewrite cache use apr_time_t
  +     consistently; we were mixing apr_time_t and time_t in invalid ways
  +     before.  In load_file(), call apr_dso_error() instead of
  +     apr_strerror() so that we get a more specific string on some platforms.
  +     PR #6980  [Jeff Trawick]
   
  -  *) Make cgi-bin work as a regular directory when using mod_vhost_alias
  -     with no VirtualScriptAlias directives. PR#6829 [Tony Finch]
  +  *) Allow modules to query the MPM about it's execution profile.  This
  +     query API can and should be extended in the future, but for now,
  +     max_daemons, and threading or forking is a very good start.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]
  +  *) Modify mod_include to send blocks of data no larger than 9k.
  +     Without this, mod_include will wait until the whole file is parsed,
  +     or the first tag is found to send any data to the client.
  +     [Paul J. Reder <re...@raleigh.ibm.com>]
   
  -  *) Get the default_handler to stop trying to deal with HEAD requests.
  -     The idea is to let the content-length filter compute the C-L before
  -     we try to send the data.  If we can get the C-L correctly, then we
  -     should send it in the HEAD response.
  -     [Ryan Bloom]
  +  *) Fix mod_info, so that <Directory> and <Location> directives are
  +     not displayed twice when displaying the current configuration.
  +     [Ryan Morgan <rm...@covalent.net>]
   
  -  *) The Header filter can now determine if a body should be sent based
  -     on r->header_only.  The general idea of this is that if we delay
  -     deciding to send the body, then we might be able to compute the
  -     content-length correctly, which will help caching proxies to cache
  -     our data better.  Any handler that doesn't want to try to compute
  -     the content-length can just send an EOS bucket without data and
  -     everything will just work.
  +  *) Add config directives to override DEFAULT_ERROR_MSG and
  +     DEFAULT_TIME_FORMAT.  This was sent in as PR 6193.
  +     [Dan Rench <dr...@xnet.com>]
  + 
  +  *) Get mod_info building and loading on Win32.  [William Rowe]
  + 
  +  *) Begin to move protocol independant functions out of mod_http.  The goal
  +     is to have only functions that are HTTP specific in the http directory.
        [Ryan Bloom]
   
  -  *) Add the referer to the error log if one is available.
  -     [Markus Gyger <mg...@itr.ch>]
  +Changes with Apache 2.0.13 (not released)
   
  -  *) Mod_info.c has now been ported to Apache 2.0.  As a part of this
  -     change, the root of the configuration tree has been exposed to modules
  -     as ap_conftree.
  -     [Ryan Morgan <rm...@covalent.net>]
  +  *) Don't assume that there will always be multiple calls to the byterange
  +     filter.  It is possible that we will need to do byteranges with only
  +     one call to the filter.  [Ryan Morgan <rm...@covalent.net>]
   
  -  *) Get the core_output_filter to use the bucket interface directly.
  -     This keeps us from calling the content-length filter multiple times
  -     for a simple static request.
  -     [Ryan Bloom]
  +  *) Move the error_bucket definition from the http module to the
  +     core server.  Every protocol will need this ability, not just
  +     HTTP.  [Ryan Bloom]
   
  -  *) We are sending the content-type correctly now.
  -     [Ryan Bloom and Will Rowe]
  +Changes with Apache 2.0.12 (not released)
   
  -  *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report
  -     a bogus bytes-sent value when the only thing being sent was trailers
  -     and writev() returned an error (or EAGAIN).  [Jeff Trawick]
  +  *) Modify mod_file_cache to save pre-formatted strings for
  +     content-length and last-modified headers for performance.
  +     [Mike Abbot <mj...@trudge.engr.sgi.com>]
   
  -  *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again.  This uses the
  -     hints file to determine which platforms define
  -     SINGLE_LISTEN_UNSERIALIZED_ACCEPT.
  -     [Ryan Bloom]
  +  *) Namespace protect IOBUFSIZ since it is exposed in the API.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) APR: add apr_get_home_directory()  [Jeff Trawick]
  +  *) Use "Basic" authentication instead of "basic" in ab, as the spec
  +     says we should.  [Andre Breiler <an...@rd.bbc.co.uk>]
   
  -  *) Initial import of 1.3-current mod_proxy. [Chuck Murcko]
  +  *) Fix a seg fault in mod_userdir.c.  We used to use the pw structure
  +     without ever filling it out.  This fixes PR 7271.
  +     [Taketo Kabe <ka...@sra-tohoku.co.jp> and
  +      Cliff Woolley <cl...@yahoo.com>]
   
  -  *) Not all platforms have INADDR_NONE defined by default.  Apache
  -     used to make this check and define INADDR_NONE if appropriate,
  -     but APR needs the check too, and I suspect other applications will
  -     as well.  APR now defines APR_INADDR_NONE, which is always a valid
  -     value on all platforms.
  -     [Branko �ibej <br...@xbc.nu>]
  +  *) Add a couple of GCC attribute tags to printf style functions.
  +     [Jon Travis <jt...@covalent.net>]
   
  -  *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824.
  -     [Shuichi Kitaguchi <ki...@hh.iij4u.or.jp>]
  +  *) Add the correct language tag for interoperation with the Taiwanese
  +     versions of MSIE and Netscape. [Clive Lin <cl...@CirX.ORG>] PR#7142
   
  -  *) Relax the syntax checking of Host: headers in order to support
  -     iDNS. PR#6635 [Tony Finch]
  +  *) Migrate the perchild MPM to use the new apr signal child, and
  +     APR thread functions.  [Ryan Bloom]
   
  -  *) When reading from file buckets we convert to an MMAP if it makes
  -     sense.  This also simplifies the default handler because the
  -     default handler no longer needs to try to create MMAPs.
  -     [Ryan Bloom]
  +  *) Close one copy of the CGI's stdout before creating the new process.
  +     The CGI will still have stdout, because we have already dup'ed it.
  +     This keeps Apache from waiting forever to send the results of a CGI
  +     process that has forked a long-lived child process.
  +     [Taketo Kabe <ka...@sra-tohoku.co.jp>]
   
  -  *) BUFF has been removed from the main server.  The BUFF code will remain
  -     in the code until it has been purged from the proxy module as well.
  +  *) Remove the rest of the pthreads functions from the threaded MPM.
  +     This requires the APR support for a signal thread that was just
  +     added.  [Ryan Bloom]
  + 
  +  *) Make mod_dir use a fixup for sending a redirect to the browser.
  +     Before this, we were using a handler, which doesn't make much
  +     sense, because the handler wasn't generating any data, it would
  +     either return a redirect error code, or DECLINED.  This fits the
  +     current hooks better.  [Ryan Morgan <rm...@covalent.net>]
  + 
  +  *) Make the threaded MPM use APR threads instead of pthreads.
        [Ryan Bloom]
   
  -  *) Byteranges have been completely re-written to be a filter.  This
  -     has been tested, and I believe it is working correctly, but it could
  -     doesn't work for the Adobe Acrobat plug-in.  The output almost matches
  -     the output from 1.3, the only difference being that 1.3 includes
  -     a content-length in the response, and this does not.
  +  *) Get mod_tls to the point where it actually appears to work in all cases.
  +     [Ben Laurie]
  + 
  +  *) implement --enable-modules and --enable-mods-shared for "all" and
  +     "most".  [Greg Stein]
  + 
  +  *) Move the threaded MPM to use APR locks instead of pthread locks.
        [Ryan Bloom]
   
  -  *) APR read/write functions and bucket read functions now operate
  -     on unsigned integers, instead of signed ones.  It doesn't make
  -     any sense to use signed ints, because we return the error codes,
  -     so if we have an error we should report 0 bytes read or written.
  +  *) Rename mpmt_pthread to threaded.  This is more in line with the
  +     fact that mpmt_pthread shouldn't be using pthreads directly, and
  +     it is a smaller name that doesn't tie into anything.
        [Ryan Bloom]
   
  -  *) Always compute the content length, whether it is sent or not.
  -     The reason for this, is that it allows us to correctly report
  -     the bytes_sent when logging the request.  This also simplifies
  -     content-length filter a bit, and fixes the actual byte-reporing
  -     code in mod_log_config.c
  +  *) Rename the module structures so that the exported symbol matches
  +     the file name, and it is easier to automate the installation
  +     process (generating LoadModule directives from the module filenames).
  +     [Martin Kraemer]
  + 
  +  *) Remove the coalesce filter.  With the ap_f* functions, this filter
  +     is no longer needed. [Ryan Bloom]
  + 
  +Changes with Apache 2.0.11 (not released)
  + 
  +  *) Remove the dexter MPM.  Perchild is the same basic idea, but it has the
  +     added feature of allowing a uid/gid per child process.  If no
  +     uid/gid is specified, then Perchild behaves exactly like dexter.
        [Ryan Bloom]
   
  -  *) Remove AP_END_OF_BRIGADE definition.  This does not signify what
  -     it says, because it was only used by EOS and FLUSH buckets.  Since
  -     neither of those are required at the end of a brigade, this was
  -     really signifying FLUSH_THE_DATA, but that can be determined better
  -     by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH.  EOS and FLUSH
  -     buckets now return a length of 0, which is actually the amount of data
  -     read, so they make more sense.
  +  *) Get perchild building again. [Ryan Bloom]
  + 
  +  *) Don't disable threads just because we are using the prefork MPM.
  +     If somebody wants to compile without threads, they must now add
  +     --disable-threads to the configure command line.  [Ryan Bloom]
  + 
  +  *) Begin to move the calls to update_child_status into common code, so
  +     that each individual MPM does not need to update the scoreboard itself.
        [Ryan Bloom]
   
  -  *) Allow the core_output_filter to save some data past the end of a
  -     request.  If we get an EOS bucket, we only send the data if it
  -     makes sense to send it.  This allows us to pipeline request
  -     responses.  As a part of this, we also need to allocate mmap
  -     buckets out of the connection pool, not the request pool.  This
  -     allows the mmap to outlive the request.
  +  *) Allow mod_tls to compile under Unix boxes where openssl has been
  +     installed to the system include files.
  +     [Gomez Henri <ne...@slib.fr>]
  + 
  +  *) Cleanup the mod_tls configure process.  This should remove any need
  +     to hand-edit any files.  We require OpenSSL 0.9.6 or later, but
  +     configure doesn't check that yet.  [Ryan Bloom]
  + 
  +  *) Add a very early prototype of SSL support (in mod_tls.c). It is
  +     vital that you read modules/tls/README before attempting to build
  +     it. [Ben Laurie]
  + 
  +  *) Fix a potential seg fault on all platforms.  David Reid fixed this
  +     on BEOS, but the problem could happen anywhere, so we don't want
  +     to #ifdef it. [Cliff Woolley <cl...@yahoo.com>]
  + 
  +  *) Add new LogFormat directive, %D, to log time it takes to serve a
  +     request in microseconds. [Bill Stoddard]
  + 
  +  *) Change AddInputFilter and AddOutputFilter to SetInputFilter and
  +     SetOutputFilter.  This corresponds nicely with the other Set
  +     directives, which operate on containers while the Add* directives
  +     tend to work directly on extensions.  [Ryan Bloom]
  + 
  +  *) Cleanup the header handling a bit.  This uses the apr_brigade_*
  +     functions for the buffering so that we don't need to compute
  +     the length of the headers before we actually create the header
  +     buffer.  [Ryan Bloom]
  + 
  +  *) Allow filters to buffer data using the ap_f* functions.  These have
  +     become macros that resolve directly to apr_brigade_*.
        [Ryan Bloom]
   
  -  *) Make blocking and non-blocking bucket reads work correctly for
  -     sockets and pipes.  These are the only bucket types that should
  -     have non-blocking reads, because the other bucket types should
  -     ALWAYS be able to return something immediately.
  +  *) Get the Unix MPM's to do a graceful restart again.  If we are going
  +     to register a cleanup with ap_cleanup_scoreboard, then we have to
  +     kill the cleanup with the same function,  and that function can't be
  +     static.  [Ryan Bloom]
  + 
  +  *) Install all required header files.  Without these, it was not
  +     possible to compile some modules outside of the server.
        [Ryan Bloom]
   
  -  *) In the Apache/Win32 console window, accept Ctrl+C to stop the
  -     server, but use Ctrl+Break to initiate a graceful restart
  -     instead of duplicating behavior. [John Sterling]
  +  *) Fix the AliasMatch directive in Apache 2.0.  When we brought a patch
  +     forward from 1.3 to 2.0, we missed a single line, which broke regex
  +     aliases.  [Ryan Bloom]
   
  -  *) Patch mod_autoindex to set the Last-Modified header based on
  -     the directory's mtime, and add the ETag header.  [William Rowe]
  +  *) We have a poor abstraction in the protocol.  This is a temporary
  +     hack to fix the bug, but it will need to be fixed for real.  If
  +     we find an error while sending out a custom error response, we back
  +     up to the first non-OK request and send the data.  Then, when we send
  +     the EOS from finalize_request_protocol, we go to the last request,
  +     to ensure that we aren't sending an EOS to a request that has already
  +     received one.  Because the data is sent on a different request than
  +     the EOS, the error text never gets sent down the filter stack.  This
  +     fixes the problem by finding the last request, and sending the data
  +     with that request.  [Ryan Bloom]
   
  -  *) Merge the 1.3 patch to add support for logging query string in
  -     such a way that "%m %U%q %H" is the same as "%r".
  -     [Bill Stoddard]
  +  *) Make the server status page show the correct restart time, and
  +     thus the proper uptime. [Ryan Bloom]
   
  -  *) Port three log methods from mod_log_config 1.3 to 2.0:
  -     CLF compliant '-' byte count, method and protocol.
  -     [Bill Stoddard]
  +  *) Move the CGI creation logic from mod_include to mod_cgi(d).  This
  +     should reduce the amount of duplicate code that is required to
  +     create CGI processes.
  +     [Paul J. Reder <re...@raleigh.ibm.com>]
   
  -  *) Add a new LogFormat directive, %c, that will log connection
  -     status at the end of the response as follows:
  -     'X' - connection aborted before the response completed.
  -     '+' - connection may be kept-alive by the server.
  -     '-' - connection will be closed by the server.
  -     [Bill Stoddard]
  +  *) ap_new_connection() closes the socket and returns NULL if a socket
  +     call fails.  Usually this is due to a connection which has been
  +     reset.  [Jeff Trawick]
   
  -  *) Expand APR for WinNT to fully accept and return utf-8 encoded
  -     Unicode file names and paths for Win32, and tag the Content-Type
  -     from mod_autoindex to reflect that charset if the the feature
  -     macro APR_HAS_UNICODE_FS is true.  [William Rowe]
  +  *) Move the Apache version information out of httpd.h and into release.h.
  +     This is in preparation for the first tag with the new tag and release
  +     system.  [Ryan Bloom]
   
  -  *) Compute the content length (and add appropriate header field) for
  -     the response when no content length is available and we can't use
  -     chunked encoding.  [Jeff Trawick]
  +  *) Begin restructuring scoreboard code to enable adding back in
  +     the ability to use IPC other than shared memory.
  +     Get mod_status working on Windows again. [Bill Stoddard]
   
  -  *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK,
  -     so that content input filters get dechunked data when using
  -     the default handler. Also removed REQUEST_CHUNKED_PASS.
  -     [Sascha Schumann]
  +  *) Make mod_status work with 2.0.  This will work for prefork,
  +     mpmt_pthread, and dexter.  [Ryan Bloom]
   
  -  *) Add mod_ext_filter as an experimental module.  This module allows
  -     the administrator to use external programs as filters.  Currently,
  -     only filtering of output is supported.  [Jeff Trawick]
  +  *) Correct a typo in httpd.conf.
  +     [Kunihiro Tanaka <ta...@apache.or.jp>] PR#7154
   
  -  *) Most Apache functions work on EBCDIC machines again, as protocol
  -     data is now translated (again).  [Jeff Trawick]
  +  *) Really fix mod_rewrite map lookups this time. [Tony Finch]
   
  -  *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
  -     the EBCDIC support.  They are noops on ASCII machines, so this
  -     type of translation doesn't have to be surrounded by #ifdef
  -     CHARSET_EBCDIC.  [Jeff Trawick]
  +  *) Get the correct IP address if ServerName isn't set and we can't
  +     find a fully-qualified domain name at startup.
  +     PR#7170 [Danek Duvall <dd...@eng.sun.com>]
   
  -  *) Fix mod_include.  tag commands work again, and the server will
  -     send the FAQ again.  This also allows mod_include to set aside
  -     buckets that include partial buckets.
  -     [Ryan Bloom and David Reid]
  +  *) Make mod_cgid work with SuExec.  [Ryan Bloom]
   
  -  *) Add suexec support back.  [Manoj Kasichainula]
  +  *) Adopt apr user/group name features for mod_rewrite.  Eliminates some
  +     'extra' stat's for user/group since they should never occur, and now
  +     resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
  +     volumes.  [William Rowe]
   
  -  *) Lingering close now uses the socket directly instead of using
  -     BUFF.  This has been tested, but since all we can tell is that it
  -     doesn't fail, this needs to be really hacked on.
  +  *) Adopt apr features to simplify mod_includes.  This changes the
  +     behavior of the USER_NAME variable, unknown uid's are now reported
  +     as USER_NAME="<unknown>" rather than the old user#000 result.
  +     WinNT now resolves USER_NAME on NTFS volumes.  [William Rowe]
  + 
  +  *) Adopt apr features for simplifing mod_userdir, and accept the new
  +     Win32/OS2 exceptions without hiccuping.  [William Rowe]
  + 
  +  *) Replace configure --with-optim option by using and saving the
  +     environment variable OPTIM instead.  This is needed because configure
  +     options do not support multiple flags separated by spaces.
  +     [Roy Fielding]
  + 
  +  *) Fix some byterange handling.  If we get a byte range that looks like
  +     "-999999" where that is past the end of the file, we should return
  +     a PARTIAL CONTENT status code, and return the whole file as one big
  +     byterange.  This matches the 1.3 handling now.  [Ryan Bloom]
  + 
  +  *) Make the error bucket a real meta-data bucket.  This means that the
  +     bucket length is 0, and a read returns NULL data.  If one of these
  +     buckets is passed down after the headers are sent, this data will
  +     just be ignored.  [Greg Stein]
  + 
  +  *) The prefork MPM wasn't killing child processes correctly if a restart
  +     signal was received while the process was serving a request.  The child
  +     process would become the equivalent of a second parent process.  If
  +     we break out of the accept loop, then we need to do die after cleaning
  +     up after ourselves.  [Ryan Bloom]
  + 
  +  *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful
  +     restarts.  [Ryan Bloom]
  + 
  +  *) Modify the apr_stat/lstat/getfileinfo calls within apache to use
  +     the most optimal APR_FINFO_wanted bits.  This spares Win32 from
  +     performing very expensive owner, group and permission lookups
  +     and allows the server to function until these apr_finfo_t fields
  +     are implemented under Win32.  [William Rowe]
  + 
  +  *) Support for typedsafe optional functions - that is functions exported by
  +     optional modules, which, therefore, may or may not be present, depending 
  +     on configuration. See the experimental modules mod_optional_fn_{ex,im}port
  +     for sample code. [Ben Laurie]
  + 
  +  *) filters can now report an HTTP error to the server.  This is done
  +     by sending a brigade where the first bucket is an error_bucket.
  +     This bucket is a simple bucket that stores an HTTP error and
  +     a string.  Currently the string is not used, but it may be needed
  +     to output an error log.  The http_header_filter will find this
  +     bucket, and output the error text, and then return
  +     AP_FILTER_ERROR, which informs the server that the error web page
  +     has already been sent.  [Ryan Bloom]
  + 
  +  *) If we get an error, then we should remove all filters except for
  +     those critical to serving a web page.  This fixes a bug, where
  +     error pages were going through the byterange filter, even though
  +     that made no sense.  [Ryan Bloom]
  + 
  +  *) Relax the syntax checking of Host: headers in order to support
  +     iDNS. PR#6635 [Tony Finch]
  + 
  +  *) Cleanup the byterange filter to use the apr_brigade_partition
  +     and apr_bucket_copy functions.  This removes a lot of very messy
  +     code, and hopefully makes this filter more stable.
        [Ryan Bloom]
   
  -  *) Allow filters to modify headers and have those headers be sent to
  -     the client.  The idea is that we have an http_header filter that
  -     actually sends the headers to the network.  This removes the need
  -     for the BUFF to send headers.
  +  *) Remove AddModule and ClearModuleList directives.  Both of these
  +     directives were used to ensure that modules could be enabled
  +     in the correct order.  That requirement is now gone, because
  +     we use hooks to ensure that modules are in the correct order.
        [Ryan Bloom]
   
  -  *) Charset translation: mod_charset_lite handles translation of
  -     request bodies.  Get rid of the xlate version of ap_md5_digest()
  -     since we don't compute digests of filtered (e.g., translated)
  -     response bodies this way anymore.  (Note that we don't do it at
  -     all at the present; somebody needs to write a filter to do so.)
  -     [Jeff Trawick]
  +  *) When SuExec is specified, we need to add it to the list of
  +     targets to be built.  If we don't, then any changes to the
  +     configuration won't affect SuExec, unless 'make suexec' is
  +     specifically run.  [Ryan Bloom]
   
  -  *) Input filters and ap_get_brigade() now have a input mode parameter
  -     (blocking, non-blocking, peek) instead of a length parameter.
  -     [hackathon]
  +  *) Cleaned out open_file from mod_file_cache, as apr now accepts
  +     the APR_XTHREAD argument to open a file for consumption by
  +     parallel threads on win32.  [William Rowe]
   
  -  *) Update the mime.types file to the registered media types as
  -     of 2000-10-19. PR#6613 [Carsten Klapp <ca...@home.net>,
  -     Tony Finch]
  +  *) Correct a bug in determining when we follow symlinks.  The code
  +     expected a stat -1 result, not an apr_status_t positive error.
  +     Also check if the APR_FINFO_USER fields are valid before we
  +     follow the link.  [William Rowe]
   
  -  *) Namespace protect some macros declared in ap_config.h
  -     [Ryan Bloom]
  +  *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to
  +     mpm_common.c.  These functions are only valid on some platforms,
  +     so they should not be in the main-line code. [Ryan Bloom]
   
  -  *) Support HTTP header line folding with input filtering.
  -     [Greg Ames]
  +  *) Remove ap_chdir_file().  This function is not thread-safe,
  +     and nobody is currently using it.  [Ryan Bloom]
   
  -  *) Mod_include works again.  This should still be re-written, but at
  -     least now we can serve an SHTML page again.
  +  *) Do not try to run make depend if there are no .c files in the
  +     current directory, doing so makes `make depend` fail.
        [Ryan Bloom]
   
  -  *) Begin to remove BUFF from the core.  Currently, we keep a pointer
  -     to both the BUFF and the socket in the conn_rec.  Functions that
  -     want to use the BUFF can, functions that want to use the socket,
  -     can.  They point to the same place.
  -     [Ryan Bloom]
  +   *) Update highperformance.conf to work with either prefork or
  +      pthreads mpms.  [Greg Ames]
   
  -  *) apr_psprintf doesn't understand %lld as a format.  Make it %ld.
  -     [Tomas "�gren" <st...@ing.umu.se>]
  +  *) Stop checking to see if this is a pipelined request if we know
  +     for a fact that it isn't.  Basically, if r->connection->keepalive == 0.
  +     This keeps us from making an extra read call when serving a 1.0
  +     request.  [Ryan Bloom and Greg Stein]
   
  -  *) APR pipes on Unix and Win32 are now cleaned up automatically when the
  -     associated pool goes away.  (APR pipes on OS/2 were already had this
  -     logic.)  This resolvs a fatal file descriptor leak with CGIs.
  +  *) Fix the handling of variable expansion look-ahead in mod_rewrite,
  +     i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of
  +     more complicated nested RewriteMap lookups. PR#7087 [Tony Finch]
  + 
  +  *) Fix the RFC number mentioned when complaining about a missing
  +     Host: header. PR#7079 [Alexey Toptygin <al...@wam.umd.edu>]
  + 
  +  *) Fix an endless loop in ab which occurred when ab was posting
  +     and the server dropped the connection unexpectedly.
        [Jeff Trawick]
   
  -  *) The final line of the config file was not being read if there was
  -     no \n at the end of it.  This was caused by apr_fgets returning
  -     APR_EOF even though we had read valid data.  This is solved by
  -     making cfg_getline check the buff that was returned from apr_fgets.
  -     If apr_fgets return APR_EOF, but there was data in the buf, then we
  -     return the buf, otherwise we return NULL.
  -     [Ryan Bloom]
  +  *) Fix a segfault while handling request bodies in ap_http_filter().
  +     This problem has been seen with mod_dav usage as well as with
  +     requests where the body was just being discarded.  [Jeff Trawick]
   
  -  *) Piped logs work again in the 2.0 series.
  -     [Ryan Bloom]
  +  *) Some adjustment on the handling and automatic setting (via
  +     hints.m4) of various compilation flags (eg: CFLAGS). Also,
  +     add the capability to specify flags (NOTEST_CFLAGS and
  +     NOTEST_LDFLAGS) which are used to compile Apache, but
  +     not used during the configuration process. Useful for
  +     flags like "-Werror". [Jim Jagielski] 
   
  -  *) Restore functionality broken by the mod_rewrite security fix:
  -     rewrite map lookup keys and default values are now expanded
  -     so that the lookup can depend on the requested URI etc.
  -     PR #6671 [Tony Finch]
  +  *) Stop using environment variables to force debug mode or
  +     no detach.  We now use the -D command line argument to
  +     specify the correct mode.  -DONE_PROCESS and -DNO_DETACH.
  +     [Greg Stein, Ryan Bloom]
   
  -  *) Tighten up the syntax checking of Host: headers to fix a
  -     security bug in some mass virtual hosting configurations
  -     that can allow a remote attacker to retrieve some files
  -     on the system that should be inaccessible. [Tony Finch]
  +  *) Change handlers to use hooks. [Ben Laurie]
   
  -  *) Add a pool bucket type.  This bucket is used for data allocated out
  -     of a pool.  If the pool is cleaned before the bucket is destroyed, then
  -     the data is converted to a heap bucket, allowing it to survive the
  -     death of the pool.
  +  *) Stop returning copies of filenames from both apr_file_t and
  +     apr_dir_t.  We pstrdup the filenames that we store in the
  +     actual structures, so we don't need to pstrdup the strings again.
        [Ryan Bloom]
   
  -  *) Add a flush bucket.  This allows modules to signal that the filters
  -     should all flush whatever data they currently have.  There is no way
  -     to actually force them to do this, so if a filter ignores this bucket,
  -     that's life, but at least we can try with this.
  -     [Ryan Bloom]
  +  *) mod_cgi: Fix some problems where the wrong error value was being
  +     traced.  [Jeff Trawick]
   
  -  *) Add an output filter for sub-requests.  This filter just strips the
  -     EOS bucket so that we don't confuse the main request's core output
  -     filter by sending multiple EOS buckets.  This change also makes sub
  -     requests start to send EOS buckets when they are finished.
  -     [Ryan Bloom]
  +  *) EBCDIC: Fix some missing ASCII conversion on some protocol data.
  +     [Jeff Trawick]
   
  -  *) Make ap_bucket_(read|destroy|split|setaside) into macros.  Also
  -     makes ap_bucket_destroy a return void, which is okay because it
  -     used to always return APR_SUCCESS, and nobody ever checked its
  -     return value anyway.
  -     [Cliff Woolley <cl...@yahoo.com>]
  +  *) Add generic hooks. [Ben Laurie]
   
  -  *) Remove the index into the bucket-type table from the buckets
  -     structure.  This has now been replaced with a pointer to the
  -     bucket_type.  Also add some macros to test the bucket-type.
  -     [Ryan Bloom]
  +  *) Use a real pool to dup the error log descriptor.  [Ryan Bloom]
   
  -  *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
  -     for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
  -     and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
  -     All _VAR_ flavors changes to _DATA to be absolutely clear.
  -     [William Rowe]
  +  *) Fix a segfault caused by mod_ext_filter when the external filter
  +     program does not exist. [Jeff Trawick]
   
  -  *) Add support for /, //, //servername and //server/sharename
  -     parsing of <Directory> blocks under Win32 and OS2.
  -     [Tim Costello, William Rowe, Brian Harvard]
  +  *) Fix an output truncation error when on an HTTP >= 1.0 request an
  +     object of size between DEFAULT_BUCKET_SIZE and AP_MIN_BYTES_TO_WRITE
  +     was served through mod_charset_lite (or anything else that would
  +     create a transient bucket in this size range).  ap_bucket_make_heap()
  +     silently failed (fixed), transient_setaside() discovered it, but
  +     ap_save_brigade() ignored it (fixed). [Jeff Trawick]
   
  -  *) Remove the function pointers from the ap_bucket type.  They have been
  -     replaced with a global table.  Modules are allowed to register bucket
  -     types and use then use those buckets.
  -     [Ryan Bloom]
  +  *) Ignore \r\n or \n when using PEEK mode for input filters.  The problem
  +     is that some browsers send extra lines at the end of POST requests, and
  +     we don't want to delay sending data back to the user just because the
  +     browser isn't well behaved. [Ryan Bloom]
   
  -  *) mod_cgid: In the handler, shut down the Unix socket (only for write)
  -     once we finish writing the request body to the cgi child process;
  -     otherwise, the client doesn't hit EOF on stdin.  Small request bodies
  -     worked without this change (for reasons I don't understand), but large
  -     ones didn't.  [Jeff Trawick]
  +  *) Get SuEXEC working again.  We can't send absolute paths to suExec
  +     because it refuses to execute those programs.  SuEXEC also wasn't
  +     always recognizing configuration changes made using the autoconf
  +     setup.  [Ryan Bloom]
   
  -  *) Remove file bucket specific information from the ap_bucket type.
  -     This has been moved to a file_bucket specific type that hangs off
  -     the data pointer in the ap_bucket type.
  -     [Ryan Bloom]
  +  *) Allow the buildconf process to find the config.m4 files in the correct
  +     order.  Basically, we can now name config.m4 files as config\d\d.m4,
  +     and we will sort them correctly when inserting them into the build
  +     process.  [Ryan Bloom]
   
  -  *) Input filtering now has a third argument.  This is the amount of data
  -     to read from lower filters.  This argument can be -1, 0, or a positive
  -     number.  -1 means give me all the data you have, I'll deal with it and
  -     let you know if I need more.  0 means give me one line and one line
  -     only.  A positive number means I want no more than this much data.
  +  *) Get mod_cgid to use apr calls for creating the actual CGI process.
  +     This also allows mod_cgid to use ap_os_create_priviledged_process,
  +     thus allowing for SuExec execution from mod_cgid.  Currently, we do
  +     not support everything that standard SuExec supports, but at least
  +     it works minimally now. [Ryan Bloom]
   
  -     Currently, only 0 and a positive number are implemented.  This allows
  -     us to remove the remaining field from the conn_rec structure, which
  -     has also been done.
  +  *) Allow SuExec to be configured from the ./configure command line.
        [Ryan Bloom]
   
  -  *) Big cleanup of the input filtering.  The goal is that http_filter
  -     understands two conditions, headers and body.  It knows where it is
  -     based on c->remaining.  If c->remaining is 0, then we are in headers,
  -     and http_filter returns a line at a time.  If it is not 0, then we are
  -     in body, and http_filter returns raw data, but only up to c->remaining
  -     bytes.  It can return less, but never more.
  -     [Greg Ames, Ryan Bloom, Jeff Trawick]
  +  *) Update some of the docs in README and INSTALL to reflect some of
  +     the changes in Apache 2.0 [Cliff Woolley <cl...@yahoo.com>]
   
  -  *) mod_cgi: Write all of the request body to the child, not just what
  -     the kernel would accept on the first write.  [Jeff Trawick]
  +  *) If we get EAGAIN returned from the call to apr_sendfile, then we
  +     need to call sendfile again.  This gets us serving large files
  +     such as apache_2.0a9.tar.gz on FreeBSD again. [Ryan Bloom]
   
  -  *) Back out the change that moved the brigade from the core_output_filters
  -     ctx to the conn_rec.  Since all requests over a given connection
  -     go through the same core_output_filter, the ctx pointer has the
  -     correct lifetime.
  +  *) Get the support programs building cleanly again.
  +     [Cliff Woolley <cl...@yahoo.com>]
  + 
  +  *) The Apache/Win32 Apache.exe and dll's now live in bin.  The
  +     current directory logic now backs up over bin/ to determine the
  +     server root from the Apache.exe path.
  + 
  +  *) Apache/Win32 now follows the standard conventions of mod_foo.so
  +     loadable modules, dynamic libs are all named libfoo.dll, and the
  +     makefile.win populates the include, lib and libexec directories.
  + 
  +  *) Apache is now IPv6-capable.  On systems where APR supports IPv6,
  +     Apache gets IPv6 listening sockets by default.  Additionally, the
  +     Listen, NameVirtualHost, and <VirtualHost> directives support IPv6
  +     numeric address strings (e.g., "Listen [fe80::1]:8080").
  +     [Jeff Trawick]
  + 
  +  *) Modify the install directory layout.  Modules are now installed in
  +     modules/.  Shared libraries should be installed in libraries/, but
  +     we don't have any of those on Unix yet.  All install directories
  +     are modifyable at configure time. [Ryan Bloom]
  + 
  +  *) Install all header files in the same directory on Unix. [Ryan Bloom]
  + 
  +  *) Get the functions in server/linked into the server, regardless of
  +     which modules linked into the server.  This uses the same hack
  +     for Apache that we use for APR and apr-util to ensure all of the
  +     necessary functions are linked.  As a part of thise, the CHARSET_EBCDIC
  +     was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make
  +     the scripts a bit easier.
        [Ryan Bloom]
   
  -  *) Fix another bug in the send_the_file() read/write loop. A partial
  -     send by apr_send would cause unsent data in the read buffer to
  -     get clobbered. Complete making send_the_file handle partial
  -     writes to the network.
  -     [Bill Stoddard]
  +  *) Rework the RFC1413 handling to make it thread-safe, use a timeout
  +     on the query, and remove IPv4 dependencies.  [Jeff Trawick]
   
  -  *) Fix a couple of type fixes to allow compilation on AIX again
  -     [Victor J. Orlikowski <v....@gte.net>]
  +  *) Get all of the auth modules to the point that they will install and
  +     be loadable into the server.  Our new build/install mechanism expects
  +     that all modules will have a common name format.  The auth modules
  +     didn't use that format, so we didn't install them properly.
  +     [Ryan Bloom]
   
  -  *) Fix bug in send_the_file() which causes offset to be ignored
  -     if there are no headers to send.
  -     [Bill Stoddard]
  +  *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer
  +     available.  Use apr_getaddrinfo() instead.  [Jeff Trawick]
   
  -  *) Handle APR_ENOTIMPL returned from apr_sendfile in the core
  -     filter. Useful for supporting Windows 9* with a binary
  -     compiled on Windows NT.
  -     [Bill Stoddard]
  +  *) Get "NameVirtualHost *" working in 2.0.  [Ryan Bloom]
   
  +  *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts
  +     after the end of the response. [Ryan Bloom]
  + 
  +  *) Get byterange requests working with responses that do not have a
  +     content-length.  Because of the way byterange requests work, we have to
  +     have all of the data before we can actually do the byterange, so we
  +     can compute the content-length in the byterange filter.
  +     [Ryan Bloom]
  + 
  +  *) Get exe CGI's working again on Windows.
  +     [Allan Edwards]
  + 
  +  *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way
  +     they keep track of whether or not their  post config hook has been
  +     called before.  Instead of a static variable (which is replaced when
  +     the DSO is loaded a second time), use userdata in the process pool.
  +     [Jeff Trawick]