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]