Skip to content
CHANGES 430 KiB
Newer Older
  *) Fix problem with threaded MPM.  The problem was that if each child
     process was busy serving a single long-lived request and the server
     was sent a graceful restart signal, the server would stop serving
     requests.  This would happen because each child process would wait to
     die until the last thread was done, and the parent wouldn't spawn any
     new children until a process died.  Now, the parent looks at the fact
     that the children are dying gracefully, and starts new children.
     Those new children only start enough threads to compliment the number
     of threads in the other child process that shares the same spot in
     the scoreboard.  In this way, we make sure to never go over
     MaxClients.  [Ryan Bloom]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) modified mod_negotiation and mod_autoindex to speed up by almost a
     factor of two on apr_dir_read()-enhanced platforms, such as Win32
     and OS2, by calling ap_sub_request_lookup_dirent() with the results
     already provided by apr_dir_read().  [William Rowe]

  *) mod_file_cache is now more robust to filtering and serves requests
     slightly more efficiently.  [Cliff Woolley]

  *) Fix problem handling FLUSH bucket in the chunked encoding filter.
     Module was calling ap_rwrite() followed by ap_rflush() but the 
     served content was not being displayed in the browser. Inspection
     of the output stream revealed that the first data chunk was
     missing the trailing CRLF required by the RFC.  [Bill Stoddard]
  *) apxs no longer generates ap_send_http_header() in the example handler

Jeff Trawick's avatar
Jeff Trawick committed
  *) Fix an ab problem which could cause a divide-by-zero exception
     with certain invocations (e.g., ab -k -c 6 -n 100 localhost/).
     [Ian Holsman <ianh@cnet.com>]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Solve case-insensitive platforms' confusion about negotiated
     filenames, allowing files of differnt case to match in choosing
     the document to serve.  [William Rowe]

  *) Fix brokenness when ThreadsPerChild is higher than the built-in
     limit.  We left ap_threads_per_child at the higher value which
     led to segfaults when doing certain scoreboard operations.
     [Jeff Trawick]

  *) Fix seg faults and/or missing output from mod_include.  The
     default_handler was using the subrequest pool for files and
     MMAPs, even though the associated APR structures typically 
     live longer than the subrequest. [Greg Ames]
  
  *) Extend mod_setenvif to support specifying regular expressions
     on the SetEnvIf (and SetEnvIfNoCase) directive attribute field.
     Example:  SetEnvIf ^TS*  [a-z].* HAVE_TS 
     will cause HAVE_TS to be set if any of the request headers begins 
     with "TS" and has a value that begins with any character in the
     set [a-z]. [Bill Stoddard]

  *) httpd children now re-bind themselves to a random CPU on
     multiprocessor systems on AIX via bindprocessor() in 2.0.
     [Victor J. Orlikowski]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Fix htdigest. It would go into a loop in getline when adding 
     a second user. [Bill Stoddard]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Win32 platforms now fully support mod_userdir options.  [Will Rowe]

  *) Automatically generate httpd.exp for AIX.
Victor J. Orlikowski's avatar
Victor J. Orlikowski committed
     DSOs now work again on AIX in 2.0
     [Victor J. Orlikowski]
  *) Add a new request hook, error_log.  This phase allows modules
     to act on the error log string _after_ it has been written
     to the error log.  The goal for this hook is to allow monitoring
     modules to send the error string to the monitoring agent.
     [Ryan Bloom]

  *) Modify mod_echo to make it use filters for input and output.
     [Ryan Morgan <rmorgan@covalent.net>]

  *) Extend mod_headers to support conditional driven Header 
     add, append and set. Use SetEnvIf to set an envar and conditionally
     add/append/set headers based on this envar thusly:

     SetEnvIf TSMyHeader value HAVE_TSMyHeader
     Header add MyHeader "%t %D" env=HAVE_TSMyHeader

     If the request contains header "TSMyHeader: value" then header
     MyHeader: "t=xxxxxxxxxx D=yyyy" will be sent on the response.
     [Bill Stoddard]

  *) Extend mod_headers to support using format specifiers on Header
     add, append and set header values. Two format specifiers are supported:

     %t - reports, in UTC microseconds since the epoch, when the
          request was received.

     %D - reports the time, in microseconds, between when the request was 
          received and the response sent. 

     Examples:
     Header add MyHeader "This request served in %D microseconds. %t"

     results in a header being added to the response that looks like this:
     
     MyHeader: This request served in D=5438 microseconds. t=991424704447256

     [Bill Stoddard]
  *) Fix reset_filter().  We need to be careful how we remove filters.
     If we set r->output_filters to NULL, we also have to reset the
     connection's filters.  [John Sterling]

  *) Optimise reset_filter() in http_protocol.c. [Greg Stein]

  *) Add a check to ap_die() to make sure the filter stack is sane and
     contains the correct basic filters when an error occurs. This fixes
     a problem where headers are not being sent on error. [John Sterling]

  *) New Header directive 'echo' option. "Header echo regex" will
     cause any headers received on the request that match regex to be
     echoed to (included in) the response headers.
     [Bill Stoddard]
  *) include/ap_compat.h tested and set APR_COMPAT_H instead of AP_COMPAT_H.
     This prevented the inclusion of apr_compat.h.  PR #7773
     [Oleg Broytmann <phd@phd.pp.ru>]

  *) Moved util_uri to the apr-util library.  This required a bunch of
     apr_name changes for the uri utility functions.  [Justin Erenkrantz]

Graham Leggett's avatar
Graham Leggett committed
  *) Move the addition of default AP_HTTP_HTTP_HEADER filters to the
     insert_filter phase so that other filters are not bypassed by default.
     [Graham Leggett]

  *) Reimplement mod_headers as an output filter. mod_headers can now
     add custom headers to inbound requests using the RequestHeader directive
     and to responses using the same old Header directive.  [Graham Leggett]

Changes with Apache 2.0.18
  *) Fix command-line processing so that if a bad argument is specified
     Apache will exit.  [Jeff Trawick]

  *) Change the make targets and rules to be consistent in all of the
     Apache-owned source trees.  [Roy Fielding]
     
  *) Fix processing of the TRACE method.  Previously we passed bogus
     parms to form_header_field() and it overlaid some vhost structures,
     resulting in a segfault in check_hostalias(). 
     [Greg Ames, Jeff Trawick]

  *) Win32: Add support for reliable piped logs. If the logging process
     goes down, Apache will automatically restart it. This function has 
     been part of Apache on Unix/Linux/BSD since the early v1.3 releases.
     [Bill Stoddard]

  *) Do not start piped log processes during the config file 
     preflight.  This change also circumvents a problem on 
     Windows where the rotatelog processes created during preflight
     was not getting cleaned up properly.
     [Bill Stoddard]

  *) add "Request Phase Participation" info to mod_info
     [Doug MacEachern]
Paul J. Reder's avatar
 
Paul J. Reder committed
  *) Make first phase changes to the scoreboard data structures in
     preparation for the rewriting of the scoreboard per my posted
     design notes. [Paul J. Reder]

  *) Fix httpd's definition of LTFLAGS to be consistent with that of apr
     and apr-util, allow it to be overridden by the configure command-line
     (default="--silent") and introduce LT_LDFLAGS to replace what we were
     formerly abusing as LTFLAGS.  [Roy Fielding]
  *) Clean up the reporting of incorrect closing container tags.
     [Barrie Slaymaker <barries@slaysys.com>]

  *) Simplify the configure process by moving all libtool stuff to APR
     and moving hints.m4 inline.  [Roy Fielding]

  *) Add the AP_DECLARE()/AP_CORE_DECLARE macros on the return types
     of functions used by mod_proxy for export in the DLL 
     [Ian Holsman <IanH@cnet.com>]

  *) Prevent a hang when a cgi handled by mod_cgid tries to read a
     request body from its stdin but no reqest body is being written to 
     the cgi.  [Jeff Trawick]

  *) mod_log_config: %c connection status incorrectly logged
     as "-" (non-keepalive) when MaxKeepAliveRequests is set to 0.
     [Bill Stoddard]

  *) Get mod_cern_meta working under Windows
     [Bill Stoddard]
Paul J. Reder's avatar
 
Paul J. Reder committed

  *) Create Files, and thus MMAPs, out of the request pool, not the
     connection pool.  This solves a small resource leak that had us
     not closing files until a connection was closed.  In order to do
     this, at the end of the core_output_filter, we loop through the
     brigade and convert any data we have into a single HEAP bucket
     that we know will survive clearing the request_rec.
     [Ryan Bloom, Justin Erenkrantz <jerenkrantz@ebuilt.com>,
Loading full blame...