Skip to content
CHANGES 512 KiB
Newer Older
Sander Striker's avatar
Sander Striker committed
Changes with Apache 2.0.37

Changes with Apache 2.0.36

Paul J. Reder's avatar
 
Paul J. Reder committed
  *) Fix a case where an invalid pass phrase is entered and an
     error message is given, but the prompt is not shown again.
     This left the user in an ambiguous state. [Paul J. Reder]

  *) Close sockets on worker MPM when doing a graceless restart.
     [Aaron Bannert]

  *) Reverted a minor optimization in mod_ssl.c that used the vhost ID
     as the session id context rather that a MD5 hash of that vhost ID,
     because it caused very long vhost id's to be unusable with mod_ssl.
     PR 8572.  [Cliff Woolley]

  *) Fix the link to the description of the CoredumpDirectory 
     directive in the server-wide document.  PR 8643.  [Jeff Trawick]

  *) Fixed SHMCB session caching.  [Aaron Bannert, Cliff Woolley]

  *) Synced with remaining changes from mod_ssl 2.8.8-1.3.24:
     - Avoid SIGBUS on sparc machines with SHMCB session caches
     - Allow whitespace between the pipe and the name of the
     program in SSLLog "| /path/to/program".  [Cliff Woolley]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Introduce mod_ext_filter and mod_deflate experimental modules
     to the Win32 build (zlib sources must be in srclib\zlib.)
     [William Rowe]

  *) Changes to the worker MPM's queue management and thread
     synchronization code to reduce mutex contention  [Brian Pane]

Aaron Bannert's avatar
Aaron Bannert committed
  *) Don't install *.in configuration files since we already install
     *-std.conf files.  [Aaron Bannert]

  *) Many improvements to the threadpool MPM.  [Aaron Bannert]

  *) Fix subreqs that are promoted via fast_redirect from having invalid
     frec->r structures.  This would cause subtle errors later on in
     request processing such as seen in PR 7966.  [Justin Erenkrantz]

  *) More efficient pool recycling logic for the worker MPM [Brian Pane]

  *) Modify the worker MPM to not accept() new connections until
     there is an available worker thread. This prevents queued
     connections from starving for processing time while long-running
     connections were hogging all the available threads.  [Aaron Bannert]

  *) Convert the worker MPM's fdqueue from a LIFO back into a FIFO.
     [Aaron Bannert]

  *) Get basic HTTP proxy working on EBCDIC machines.  [Jeff Trawick]

  *) Allow mod_unique_id to work on systems with no IPv4 address
     corresponding to their host name.  [Jeff Trawick]

  *) Fix suexec behavior with user directories.  PR 7810.
     [Colm <colmmacc@redbrick.dcu.ie>]

  *) Reject a blank UserDir directive since it is ambiguous.  PR 8472.
     [Justin Erenkrantz]

  *) Make mod_mime use case-insensitive matching when examining
     extensions on all platforms.  PR 8223.  [Justin Erenkrantz]

  *) Add an intelligent error message should no proxy submodules be
     valid to handle a request. PR 8407 [Graham Leggett]

Aaron Bannert's avatar
Aaron Bannert committed
  *) Major improvements in concurrent processing for AB by enabling
     non-blocking connect()s and preventing APR from doing blocking
     read()s. Also implement fatal error checking for apr_recv().
     [Aaron Bannert]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Fix Win32 NTFS Junctions (symlinks).  PR 8014  [William Rowe]

  *) Fix Win32 'short name' aliases in httpd.conf directives.
     PR 8009  [William Rowe]

  *) Fix generation of default httpd.conf when the layout paths are
     disjoint.  PR 7979, 8227.  [Justin Erenkrantz]
  *) Swap downgrade-1.0 and force-response-1.0 conditional checks so
     that downgraded responses can have force-response.  PR 8357.
     [Justin Erenkrantz]

  *) Fix perchild MPM so that it can be configured with the move to the
     experimental directory.  [Scott Lamb <slamb@slamb.org>]

  *) Fix perchild MPM so that it uses ap_gname2id for groups instead of
     ap_uname2id. [Scott Lamb <slamb@slamb.org>]

  *) Fix AcceptPathInfo. PR 8234  [Cliff Woolley]

  *) [Security] Added the APLOG_TOCLIENT flag to ap_log_rerror() to
     explicitly tell the server that warning messages should be sent 
     to the client in addition to being recorded in the error log. 
     Prior to this change, ap_log_rerror() always sent warning 
     messages to the client. In one case, a faulty CGI script caused
     the server to send a warning message to the client that contained
     the full path to the CGI script. This could be considered a
     minor security exposure. [Bill Stoddard]
  *) mod_autoindex output when SuppressRules was specified would
     omit the first carriage return so the first item in the list
     would appear to the right of the column headings instead of
     underneath them. PR 8016  [David Shane Holden <dpejesh@yahoo.com>]

Paul J. Reder's avatar
 
Paul J. Reder committed
  *) Moved the call to apr_mmap_dup outside the error branch so
     that it would actually get called. This fixes a core dump
     at init everytime you use the MMapFile directive. PR 8314
     [Paul J. Reder]
Justin Erenkrantz's avatar
Justin Erenkrantz committed

  *) Trigger an error when a LoadModule directive attempts to
     load a module which is built-in.  This is a common error when
     switching from a DSO build to a static build.  [Jeff Trawick]

  *) Change instdso.sh to use libtool --install everywhere and then
     clean up some stray files and symlinks that libtool leaves around
     on some platforms.  This gets subversion building properly since
     it needed a re-link to be performed by libtool at install time,
     and the old instdso.sh logic to simply cp the DSO didn't handle
     that requirement.  [Sander Striker]

  *) Allow VPATH builds to succeed when configured from an empty
     directory.  [Thom May <thom@planetarytramp.net>]

  *) Fix 'control reaches end of non-void function' warning in
     server/log.c.  [Ben Collins-Sussman <sussman@collab.net>]

Justin Erenkrantz's avatar
Justin Erenkrantz committed
  *) Perchild MPM is now correctly deemed as experimental and is now
     located in server/mpm/experimental.  [Justin Erenkrantz]

  *) Fix segfault in mod_mem_cache when garabge collecting an expired
     cache entry.  [Bill Stoddard]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Introduced -E startup_logfile_name option to httpd to allow admins
     to begin logging errors immediately.  This provides Win32 users 
     an alternative to sending startup errors to the event viewer, and
     allows other daemon tool authors an alternative to logging to stderr.
     [William Rowe] 
     
  *) Fix subreqs with non-defined Content-Types being served improperly.
     [Justin Erenkrantz]

  *) Merge in latest GNU config.guess and config.sub files.  PR 7818.
     [Justin Erenkrantz]

  *) Move 100 - Continue support to the HTTP_IN filter so that filters
     are guaranteed to support 100 - Continue logic without any
     intervention.  [Justin Erenkrantz]

  *) Add HTTP chunked input trailer support.  [Justin Erenkrantz]

  *) Rename and export get_mime_headers as ap_get_mime_headers.
     [Justin Erenkrantz]

  *) Allow empty Host: header arguments.  PR 7441.  [Justin Erenkrantz]

  *) Properly substitute sbindir as httpd's location in apachectl.  PR 7840.
     [Andreas Hasenack <andreas@netbank.com.br>]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Allow Win32 shebang scripts to follow the path (or omit the .exe
     suffix from the shebang command), and allow ScriptInterpreterSource
     Registry or RegistryStrict to override shebang lines, as 1.3 did.
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
     PR 8004  [William Rowe]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) worker MPM: Fix a situation where a child exited without releasing
     the accept mutex.  Depending on the OS and mutex mechanism this 
     could result in a hang.  [Jeff Trawick]

  *) Update the instructions for how to get started with mod_example.
     [Stas Bekman]
  
  *) Fix PidFile to default to rel_runtimedir instead of
     rel_logfiledir.  PR 7841.  [Andreas Hasenack <andreas@netbank.com.br>]

  *) Win32: Fix problem that caused rapid performance degradation
     when number of connecting clients exceeded ThreadsPerChild.
     [Bill Stoddard]
  *) Fixed a segfault parsing large SSIs on non-mmap systems.
     [Brian Havard]

  *) Proxy was bombing out every second keepalive request, caused by a
     stray CRLF before the second response's status line. Proxy now
     tries to read one more line if it encounters a CRLF where it
     expected a status. PR 10010 [Graham Leggett]

  *) Deprecated the apr_lock.h API. Please see the following files
     for the improved thread and process locking and signaling: 
     apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
     apr_thread_cond.h, and apr_global_mutex.h.  [Aaron Bannert]

Doug MacEachern's avatar
Doug MacEachern committed
  *) Change mod_status to use scoreboard accessor functions so it can
     be used in any MPM without having to be recompiled.
     [Ryan Morgan <rmorgan@covalent.net>]

  *) Fix parsing of some AP_DECLARE_DATA declarations so that the filter
     handle declarations are recognized.  This fixes problems loading 
     mod_autoindex on some platforms.  [Brian Havard]

Doug MacEachern's avatar
Doug MacEachern committed
  *) add optional fixup hook to proxy [Daniel Lopez <daniel@covalent.net>]

  *) Remind the admin about the User and Group directives when we are
     unable to set permissions on a semaphore.  PR 7812  [Jeff Trawick]

Doug MacEachern's avatar
Doug MacEachern committed
  *) fix possible compilation problem in ssl_engine_kernel.c. PR 7802
     [Doug MacEachern]

  *) fix possible infinite loop in mod_ssl triggered by certain
     netscape clients [Doug MacEachern]

  *) fix ProxyPass when frontend is https and backend is http
     [Doug MacEachern]

  *) Add DASL support to mod_dav
     [Sung Kim <hunkim@cse.ucsc.edu>]

  *) mod_rewrite: updated to use the new APR global mutex type.
     [Aaron Bannert]

  *) Fixes for mod_include errors on boundary conditions in which
     "<!--#" occurs at the very end of a bucket
     [Paul Reder, Brian Pane]

  *) worker, prefork, perchild, beos MPMs: Add -DFOREGROUND switch to 
     cause the Apache parent process to run in the foreground (similar to
     -DNO_DETACH except that it doesn't switch session ids).  
     [Jeff Trawick]
  *) Added support for Posix semaphore mutex locking (AcceptMutex posixsem)
     for those platforms that support it. If using the default
     implementation, this is between pthread and sysvsem in priority.
     This implies it's the new default for Darwin. [Jim Jagielski]

  *) AIX: Fix the syntax for setting the LDR_CNTRL and AIXTHREAD_SCOPE
     environment variables in the envvars file.  [Jeff Trawick]

Jeff Trawick's avatar
Jeff Trawick committed
  *) worker MPM: Don't create a listener thread until we have a worker
     thread.  Otherwise, in situations where we'll have to wait a while
     to take over scoreboard slots from a previous generation, we'll be
     accepting connections we can't process yet.  [Jeff Trawick]

  *) Allow worker MPM to build on systems without pthread_kill().
     [Pier Fumagalli, Jeff Trawick]

  *) Prevent ap_add_output_filters_by_type from being called in
     ap_set_content_type if the content-type hasn't changed.
     [Justin Erenkrantz]

  *) Performance: implemented the bucket allocator made possible by the
     API change in 2.0.34.  [Cliff Woolley]

  *) Don't allow initialization to succeed if we can't get a socket
     corresponding to one of the Listen statements.  [Jeff Trawick]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
Changes with Apache 2.0.34
Ryan Bloom's avatar
Ryan Bloom committed
  *) Allow all Perchild directives to accept either numerical UID/GID
     or logical user/group names.  [Scott Lamb <slamb@slamb.org>]

  *) Make Perchild compile cleanly and serve pages again. [Ryan Bloom]

  *) implement ssl proxy to support ProxyPass / https:// and the
     SSLProxy* directives [Doug MacEachern]

  *) Update mod_cgid to not do single-byte socket reads for CGI headers
     [Brian Pane]

  *) Made AB's use of the Host: header rfc2616 compliant
     by Taisuke Yamada <tai@iij.ad.jp> [Dirk-Willem van Gulik].

  *) The old, legacy (and unused) code in which the scoreboard was totally
     and completely contained in a file (SCOREBOARD_FILE) has been
     removed. This does not affect scoreboards which are *mapped* to
     files using named-shared-memory. [Jim Jagielski]

Cliff Woolley's avatar
Cliff Woolley committed
  *) Change bucket brigades API to allow a "bucket allocator" to be
     passed in at certain points.  This allows us to implement freelists
     so that we can stop using malloc/free so frequently.
     [Cliff Woolley, Brian Pane]

  *) Add support for macro expansion within the variable names in
     <!--#echo--> and <!--#set--> directives [Brian Pane]

  *) Fix some mod_include segfaults [Cliff Woolley, Brian Pane, Brad Nicholes]

Mark J. Cox's avatar
Mark J. Cox committed
  *) Update the "RedHat" Layout to match Red Hat Linux version 7. PR BZ-7422
     [Joe Orton] 

  *) add compat layer to support RSA SSLC 1.x and 2.x in mod_ssl
     [Jon Travis, John Barbee, William Rowe, Ryan Bloom, Doug MacEachern]

  *) Add a new parameter to the quick_handler hook to instruct
     quick handlers to optionally do a lookup rather than actually 
     serve content. This is the first of several changes required fix
     several problems with how quick handlers work with subrequests.
     [Bill Stoddard]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

Jeff Trawick's avatar
Jeff Trawick committed
  *) worker MPM: Get MaxRequestsPerChild to work again.  [Jeff Trawick]

  *) [APR-related] The ordering of the default accept mutex method has
     been changed to better match what's done in Apache 1.3. The ordering 
     is now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
     [Jim Jagielski]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Ensure that the build/ directory is created when using VPATH.
     [Justin Erenkrantz]

  *) Add some popular types to the mime magic file.  PR 7730.
     [Linus Walleij <triad@df.lth.se>, Justin Erenkrantz]

  *) Remove the single-byte socket reads for CGI headers [Brian Pane]

  *) When a proxied site was being served, Apache was replacing
     the original site Server header with it's own, which is not
     allowed by RFC2616. Fixed. [Graham Leggett]

  *) Fix a mod_cgid problem that left daemon processes stranded
     in some server restart scenarios.  [Jeff Trawick]

  *) Added exp_foo and rel_foo variables to config_vars.mk for
     all Apache and Autoconf path variables (like --sysconfdir,
     --sbindir, etc). exp_foo is the "expanded" version, which means
     that all internal variable references have been interpolated.
     rel_foo is the same as $exp_foo, only relative to $prefix if they
     share a common path.  [Aaron Bannert]

  *) Fix some restart/terminate problems in the worker MPM.  Don't
     drop connections during graceful restart.  [Jeff Trawick]

  *) Change the header merging behaviour in proxy, as some headers
     (like Set-Cookie) cannot be unmerged due to stray commas in
     dates. [Graham Leggett]

  *) Be more vocal about what AcceptMutex values we allow, to make
     us closer to how 1.3 does it. [Jim Jagielski]

  *) Get nph- CGI scripts working again.  PRs 8902, 8907, 9983
     [Jeff Trawick]

  *) Upgraded PCRE library to latest version 3.9 [Brian Pane]

  *) Add accessor function to set r->content_type. From now on,
     ap_rset_content_type() should be used to set r->content_type.
     This change is required to properly implement the 
     AddOutputFilterByType configuration directive.
     [Bill Stoddard, Sander Striker, Ryan Bloom]
  *) Add new M_FOO symbols for the WebDAV/DeltaV methods specified by
     RFC 3253. Improved the method name/number mapping functions.
     [Greg Stein]

Ian Holsman's avatar
Ian Holsman committed
  *) remove sock_enable_linger from connection.c [Ian Holsman]

  *) Fix for virtual host processing where the requested hostname
     has a '.' at the end (PR 9187) [Ryan Cruse <ryan@estara.com>]

  *) mod_dav's APIs for REPORT response handling was changed so that
     providers can generate the content directly into the output filter
     stack, rather than buffering the response into memory. [Greg Stein]

  *) Fix a hang condition with graceful restart and prefork MPM
     in the situation where MaxClients is very high but
     much fewer servers are actually started at the time of the
     restart.  [Jeff Trawick]

  *) Small performance fixes for mod_include [Brian Pane]

  *) Performance improvement for the error logger [Brian Pane]

  *) Change configure so that Solaris 8 and above have 
     SINGLE_LISTEN_UNSERIALIZED_ACCEPT defined by default.
     according to sun people solaris 8+ doesn't have a thundering
     herd problem [Ian Holsman]

  *) Allow URIs specifying CGI scripts to include '/' at the end
     (e.g., /cgi-bin/printenv/) on AIX and Solaris (and other OSs
     which ignore '/' at the end of the names of non-directories).
     PR 10138  [Jeff Trawick]

Doug MacEachern's avatar
Doug MacEachern committed
  *) implement SSLSessionCache shmht and shmcb based on apr_rmm and
     apr_shm.  [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]

Jeff Trawick's avatar
Jeff Trawick committed
  *) Fix apxs -g handling.  Move config_vars.mk from the top build
     directory to the build directory.  PR 10163  [Jeff Trawick]

  *) Fix some mod_include problems which broke evaluation of some
     expressions.  PR 10108  [Jeff Trawick]

  *) Fix the calculation of request time in mod_status.  [Stas Bekman]

  *) Fix the calculation of thread_num in the worker score structure.
     [Stas Bekman]

  *) Use apr_atomic operations in managing the mod_mem_cache
     cache_objects for SMP scalability. (see USE_ATOMICS
     preprocessor directive in mod_file_cache)
     [Bill Stoddard]

  *) Add filehandle caching to mod_mem_cache. (see CACHE_FD
     preprocessor directive in mod_file_cache)
     [Bill Stoddard]

  *) Implement prototype mod_disk_cache for use with mod_cache.
     [Bill Stoddard]
Ryan Bloom's avatar
Ryan Bloom committed

  *) Add a missing manualdir entry in the Debian config.layout.
     [Thom May <thom@planetarytramp.net>]

  *) Stop installing libtool for APR and tell APR where it should place
     its copy of libtool (via our installbuildpath layout variable).
     [Justin Erenkrantz]

  *) New directive ProxyIOBufferSize. Sets the size of the buffer used
     when reading from a remote HTTP server in proxy. [Graham Leggett]

  *) Modify receive/send loop in proxy_http and proxy_ftp so that
     should it be necessary, the remote server socket is closed before
     transmitting the last buffer (set by ProxyIOBufferSize) to the
     client. This prevents the backend server from being forced to hang
     around while the last few bytes are transmitted to a slow client.
     Fix the case where no error checking was performed on the final
     brigade in the loop. [Graham Leggett]

  *) Scrap CacheMaxExpireMin and CacheDefaultExpireMin. Change
     CacheMaxExpire and CacheDefaultExpire to use seconds rather than
     hours. [Graham Leggett, Bill Stoddard]

Ian Holsman's avatar
 
Ian Holsman committed
  *) New Directive SSIUndefinedEcho. to change the '(none)' echoed
     for a undefined variable. [Ian Holsman]

  *) Proxy HTTP and CONNECT: Keep trying other addresses from the DNS
     when we can't get a socket in the specified address family.  We may
     have gotten back an IPv6 address first and yet our system is not
     configured to allow IPv6 sockets.  [Jeff Trawick]

  *) Be more careful about recursively removing CVS directories. Make
     sure that we aren't cd'ing to their home directory first. PR: 9993
     [Aaron Bannert, James LewisMoss <dres@lewismoss.net>]
  *) Add a missing errordir entry in the Debian config.layout. PR: 10067
     [Dirk-Jan Faber <dirk-jan@selwerd.nl>, Aaron Bannert,
      Thom May <thom@planetarytramp.net>]

Justin Erenkrantz's avatar
Justin Erenkrantz committed
  *) Rename the filter ordering priorities.  The recent filtering fixes
     have showcased problems with their usage.  Therefore, we need to
     rename them to increase the clarity.  (CONTENT->RESOURCE,
     HTTP_HEADER->CONTENT_SET/PROTOCOL)  [Justin Erenkrantz]

Ryan Bloom's avatar
Ryan Bloom committed
Changes with Apache 2.0.33
  *) Fix a problem in the new --enable-layout functionality where
     it wouldn't allow overrides from variables like --prefix,
     --bindir, etc.  [Thom May <thom@planetarytramp.net>]

  *) Fix a bug in the core input filter for AP_MODE_EXHAUSTIVE. It
     no longer hangs around waiting for the socket to close before
     returning exhaustive data.  [Aaron Bannert]

  *) rename apr_exploded_time_t to apr_time_exp_t (as per renames pending)
     [Thom May <thom@planetarytramp.net>]

Doug MacEachern's avatar
Doug MacEachern committed
  *) Change mod_ssl to always do a full startup/teardown on restarts.
     this allows mod_ssl to be added to a server that is already
     running and makes it possible to add/change certs/keys after the
     server has been started.  [Doug MacEachern]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Introduce PassPhraseDialog "|/path/to/pipe" mechanism to mod_ssl.
     This pipe must be a bidirectional 'console' style relay, which
Doug MacEachern's avatar
Doug MacEachern committed
     mod_ssl prints all prompts to the pipe's stdin, and reads the
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
     passphrases from the pipe's stdout.  [William Rowe]

  *) Fix bug where --sysconfdir and --localstatedir were being
     ignored.  [Thom May <thom@planetarytramp.net>, Aaron Bannert]
     PR 9888

  *) Fix --enable-layout to work again. Caution: When specifying
     --enable-layout, common arguments like --prefix, --exec-prefix,
     etc. will be ignored and the settings from the layout will be
     used instead.  [Thom May <thom@planetarytramp.net>, Aaron Bannert]
     PR 9124, 9873, 9885

  *) New Directive for mod_proxy: ProxyRemoteMatch. This provides
     regex pattern matching for the determination of which requests
     to use the remote proxy for. [Jim Jagielski]

  *) Fix CustomLog bytes-sent with HTTP 0.9.  [Justin Erenkrantz]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Prevent Apache from ignoring SIGHUP due to some lingering 1.3
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
     cruft in piped logs and rewritemap child processes.
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
     [William Rowe]

  *) All instances of apr_lock_t have been removed and converted
     to one of the following new lock APIs: apr_thread_mutex.h,
     apr_proc_mutex.h, or apr_global_mutex.h. No new code should
     use the apr_lock.h API, as the old API will soon be deprecated.
     [Aaron Bannert]

  *) Merged in changes to mod_ssl up through 2.8.7-1.3.23.
     [Ralf S. Engelschall, Cliff Woolley]

Ian Holsman's avatar
Ian Holsman committed
  *) mod-include: make it handle flush'es and fix the 'false-alarm'
     [Justin Erenkrantz, Brian Pane, Ian Holsman]
  *) ap_get_*_filter_handle() functions to allow 3rd party modules
     to lookup filter handles so they can bypass the filter name
     lookup when adding filters to a request (via ap_add_*_filter_handle())
     [Ryan Morgan <rmorgan@covalent.net>]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Fix for multiple file buckets on Win32, where the first file
     bucket would cause the immediate closure of the socket on any
     non-keepalive requests.  [Ryan Morgan <rmorgan@covalent.net>]

  *) Correct Win32 failure of mmap of a segment beyond start of the
     file; fixes large SSL and similar transfers.  [William Rowe]
     PR 9898

  *) Implement apr_proc_detach changes and allow -DNO_DETACH in the
     multi-process mode to not "daemonize" while detaching from the
     controlling terminal. This is necessary for Apache to work with
     process-management tools like AIX's "System Resource Controller"
     as well as Dan Bernstein's "daemontools".
     [Jos Backus <josb@cncdsl.com>, Aaron Bannert]

  *) Convert mod_auth_digest to use the new apr_global_mutex_t
     type.  [Aaron Bannert]

  *) fix bug in mod-include where it wouldn't send a unmatched
     part if it was at the end of a bucket [Ian Holsman]

  *) worker MPM: Improve logging of errors with the interface between
     the listener thread and worker threads.  [Jeff Trawick]

  *) Some browsers ignore cookies that have been merged into a
     single Set-Cookie header. Set-Cookie and Set-Cookie2 headers
     are now unmerged in the http proxy before being sent to the
     client. [Graham Leggett]

  *) Fix a problem with proxy where each entry of a duplicated
     header such as Set-Cookie would overwrite and obliterate the
     previous value of the header, resulting in multiple header
     values (like cookies) going missing.
     [Graham Leggett, Joshua Slive]

  *) Add the server-limit and thread-limit values to the scoreboard
     for the sake of third-party applications.
     [Adam Sussman <myddryn@vishnu.vidya.com>]

Ian Holsman's avatar
Ian Holsman committed
  *) Fix segfault when proxy recieves an invalid HTTP response [Ian Holsman]

  *) OS/390: Get make install to properly copy DSO modules.
     [Jeff Trawick]

  *) Win32: Fix bug in mod_status with displaying "Restart Time"
     and "Server uptime".
  *) Fix IPv6 name-based virtual hosts.  [Jeff Trawick]

  *) Introduce AddOutputFilterByType directive.  [Justin Erenkrantz]

  *) Fix DEBUG_CGI support in mod_cgi.  PR 9670, 9671.
     [David MacKenzie <djm@pix.net>]

  *) Fix incorrect check for script_in in mod_cgi.  PR 9669.
     [David MacKenzie <djm@pix.net>]

  *) Fix segfault and display error when SSLMutex file can not be
     created.  [Adam Sussman <myddryn@vishnu.vidya.com>]

  *) Add reference counting to mod_mem_cache cache objects to
     better manage removing objects from the cache.
     [Bill Stoddard]
  *) Change the verbage on the ScoreBoardFile in our default configs.
     Also change the default to be commented out (unspecified) so we
     get anonymous shared memory by default.  [Aaron Bannert]

  *) Implement new ScoreBoardFile directive logic. This affects how
     we create the scoreboard's shared memory segment. If the directive
     is present, a name-based segment is created. If the directive is
     not present, first an anonymous segment is created, and if that
     fails, a name-based segment is created from a file of the name
     DEFAULT_SCOREBOARD. This gives third-party applications the
     ability to access our scoreboard.  [Aaron Bannert]
  *) Allow mod_deflate to work with non-GET requests and properly send
     Content-Lengths.  [Sander Striker <striker@apache.org>]

  *) Fix ap_directory_merge() to correctly merge configs when there is
     no <Directory /> block.  [Justin Erenkrantz, William Rowe]

  *) Remove spurious debug messsages that are normal under HTTP
     keep-alive logic.  [Jeff Trawick, Justin Erenkrantz]

Justin Erenkrantz's avatar
Justin Erenkrantz committed
  *) Fix a bug in mod_cgid that would prevent proper shutdown death
     of the cgid process.  [Aaron Bannert]

  *) Add signal handling back in to the worker MPM for the one_process
     (-X, -DDEBUG, -DONE_PROCESS) case.  [Aaron Bannert]

  *) Performance: Reuse per-connection transaction pools in the
     worker MPM, rather than destroying and recreating them.  [Brian Pane]

  *) Remove all signals from the worker MPM's child process.  Instead,
     the parent uses the Pipe of Death for all communication with the
     child processes.  [Ryan Bloom]

Justin Erenkrantz's avatar
Justin Erenkrantz committed
Changes with Apache 2.0.32
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) mod_negotiation: ForceLanguagePriority now uses 'Prefer' as the
     default if the directive is not specified.  This mirrors older
     behavior without changes to the httpd.conf.  [William Rowe]

  *) Win32: solve the win32 service problems in 2.0.31-alpha, by fixing
     the service, mpm and logging code, and bugs in apr_file_open_stderr 
     and apr_file_dup2 functions.  Win2K/XP services have no handles 
     associated for stdin/out/err, which caused unpredictable behavior
     in the prior release.  [William Rowe, Bill Stoddard]

  *) Win32: simplify the Application Event Log messages, since there isn't
     likely to be 'more information in the error log' before an error log
     has been opened.  [William Rowe]

  *) Win32: substantial cleanup to the mpm_winnt code for legibility and
     to follow the program flow of other MPMs.  [Ryan Bloom, William Rowe]

  *) Win32: apache -k shutdown now behaves like apache -k stop.
     [Bill Stoddard]

  *) Fix prefork to not kill the parent if a child hits a resource shortage
     on accept().  [Greg Ames]
Ian Holsman's avatar
Ian Holsman committed

  *) Fix seg faults that occur when what should be the httpd request line
     starts with \r\n followed by garbage.  [Greg Ames]

  *) Allow statically linked support binaries with the new
     --enable-static-support flag, and enable this behavior in
     the binbuild script. Also add a new --enable-static-htdbm
     flag.  [Aaron Bannert]

  *) Allow mod_autoindex to serve symlinks if permitted and attempt to
     do only one stat() call when generating the directory listings.
     [Justin Erenkrantz]

  *) Fix resolve_symlink to save the original symlink name if known.
     [Justin Erenkrantz]

  *) Be a bit more sane with regard to CanonicalNames.  If the user has
     specified they want to use the CanonicalName, but they have not
     configured a port with the ServerName, then use the same port that 
     the original request used. [Ryan Bloom and Ken Coar]

  *) In core_input_filter, check for an empty brigade after 
     APR_BRIGADE_NORMALIZE().  Otherwise, we can get segfaults if a
     client says it will post some data but we get FIN before any
     data arrives.  [Jeff Trawick]

  *) Not being able to bind to the socket is a fatal error.  We should
     print an error to the console, and return a non-zero status code.
     With these changes, all of the Unix MPMs do that correctly.
     [Ryan Bloom]

  *) suexec: Allow HTTPS and SSL_* environment variables to be passed
     through to CGI scripts. PR 9163
     [Brian Reid <breid@customlogic.com>, 
      Zvi Har'El <rl@math.technion.ac.il>]

  *) binbuild.sh: Make sure that we use the expat from our source
     tree so that there aren't any surprises on the target machine.
     [Jeff Trawick]

  *) mod_cgid: Add retry logic for when the daemon can't fork fast
     enough to keep up with new requests.  Start using 
     HTTP_SERVER_UNAVAILABLE instead of HTTP_INTERNAL_SERVER_ERROR
     when we can't talk to the daemon.  [Jeff Trawick]

  *) apxs: LTFLAGS envvar can override default libtool options.  Try
     "LTFLAGS=' ' apxs -c mod_foo.c" to see what libtool does under
     the covers.  [Jeff Trawick]

Ian Holsman's avatar
Ian Holsman committed
  *) The Location: response header field, used for external
     redirect, *must* be an absoluteURI.  The Redirect directive
     tested for that, but RedirectMatch didn't -- it would allow
     almost anything through.  Now it will try to turn an abs_path
     into an absoluteURI, but it will correctly varf like Redirect
     if the final redirection target isn't an absoluteURI.  [Ken Coar]

Changes with Apache 2.0.31
Ian Holsman's avatar
Ian Holsman committed

  *) Create the scoreboard (in the parent) in a global pool context,
     so it survives graceful restarts. This fixes a SEGV during
     graceful restarts.  [Aaron Bannert]

  *) Add a timeout option to the proxy code 'ProxyTimeout' 
     [Ian Holsman]
  *) FTP directory listings are now always retrieved in ASCII mode.
     The FTP proxy properly escapes URI's and HTML in the generated
     listing, and escapes the path components when talking to the FTP
     server. It is now possible to browse the root directory by using
     a url like:   ftp://user@host/%2f/ (ported from apache_1.3.24)
     Also, the last path component may contain wildcard characters
     '*' and '?', and if they do, a directory listing is created instead
     of a file retrieval. Example: ftp://user@host/httpd/server/*.c
     [Martin Kraemer]

  *) Added single-listener unserialized accept support to the
     worker MPM [Brian Pane]

  *) New Directive for mod_proxy: 'ProxyPreserveHost'. This passes
     the incoming host header through to the proxied server
     [Geoff <g.russell@ieee.org>]

Ian Holsman's avatar
Ian Holsman committed
  *) New Directive Option for ProxyPass. It now can block a location
     from being proxied [Jukka Pihl <jukka.pihl@entirem.com>]
  *) Don't let the default handler try to serve a raw directory.  At
     best you get gibberish.  Much worse things can happen depending
     on the OS.  [Jeff Trawick]
     
  *) Change the pre_config hook to return a value. Modules can now emit
     an error message and then cause the server to quit gracefully during
     startup. This required a bump to the MMN.  [Aaron Bannert]

  *) Fix some unix socket descriptor leaks in the handler side of
     mod_cgid (the part that runs in the server process).  Whack a
     silly "close(-1)" in the handler too.  [Jeff Trawick]

  *) Change the pre_mpm hook to return a value, so that scoreboard
     init errors percolate up to code that knows how to exit 
     cleanly.  This required a bump to the MMN.  [Jeff Trawick]
  *) Add the socket back to the conn_rec and remove the create_connection
     hook. The create_connection hook had a design flaw that did not 
     allow creating connections based on vhost info. [Bill Stoddard]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Fixed PATH_INFO and QUERY_STRING from mod_negotiation results.
     Resolves the common case of using negotation to resolve the request
     /script/foo for /script.cgi/foo.  [William Rowe]

  *) Added new functions ap_add_(input|output)_filter_handle to
     allow modules to bypass the usual filter name lookup when
     adding hard-coded filters to a request [Brian Pane]

  *) caching should now work on subrequests (still very experimental)
Ian Holsman's avatar
Ian Holsman committed
     [Ian Holsman]
  
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) The Win32 mpm_winnt now has a shared scoreboard.  [William Rowe]

  *) Change ap_get_brigade prototype to use apr_off_t instead of apr_off_t*.
     [Justin Erenkrantz]

  *) Refactor ap_rgetline so that it does not use an internal brigade.
     Change ap_rgetline's prototype to return errors.  [Justin Erenkrantz]

  *) Remove mod_auth_db.  [Justin Erenkrantz]

  *) Do not install unnecessary pcre headers like config.h and internal.h.
     [Joe Orton <joe@manyfish.co.uk>]

  *) Change in quick_hanlder behavior for subrequests. it now passes DONE
     (as it does for a normal request). quick_handled sub-requests now work
     in mod-include [Ian Holsman]

  *) Change SUBREQ_CORE so that it is a 'HTTP_HEADER' filter instead of
     'CONTENT' one, as it needs to run AFTER all content headers
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Rename BeOS MPM directive RequestsPerThread to MaxRequestsPerThread.
     [Lars Eilebrecht]

  *) Split out blocking from the mode in the input filters.
     [Justin Erenkrantz]

  *) Fix a segfault in mod_include.  [Justin Erenkrantz, Jeff Trawick]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Cause Win32 to capture all child-worker process errors in
     Apache to the main server error log, until the child can
     open its own error logs.  [William Rowe]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) HPUX 11.*: Do not kill the child process when accept() 
     returns ENOBUFS on HPUX 11.*. (ported from a 1.3 patch
     by [madhusudan_mathihalli@hp.com])
     [Bill Stoddard]

  *) Fix a problem in the parsing of the <Proxy foo> directive.
     [Jeff Trawick]

  *) rewrite of mod_ssl input filter for better performance and less
     memory usage [Doug MacEachern]

  *) allow quick_handler to be run on subrequests. [Ian Holsman]
  *) mod_dav now asks its provider to place content directly into the
     filter stack when handling a GET request. The mod_dav/provider
     API has changed, so providers need to be updated. [Greg Stein]

  *) Clear the output socket descriptor in unixd_accept() to make sure
     we don't supply a bogus socket to the caller if the accept fails.
     This caused problems with the worker MPM, which tried to process
     the returned socket if it was non-NULL.  [Brian Pane]

  *) Move a check for an empty brigade to the start of core input filter
     to avoid segfaults.  [Justin Erenkrantz, Jeff Trawick]

Ken Coar's avatar
 
Ken Coar committed
  *) Add FileETag directive to allow configurable control of what
     data are used to form ETag values for file-based URIs.  MMN
     bumped to 20020111 because of fields added to the end of
     the core_dir_config structure.  [Ken Coar]

  *) Fix a segfault in mod_rewrite's logging code caused by passing the
     wrong config to ap_get_remote_host().  [Jeff Trawick]

  *) Allow mod_cgid to work from a binary distribution install by
     using 755 for the permissions on the log directory instead of
     750.  [Jeff Trawick]

  *) Fixed a segfault that happened during graceful shutdown (or when
     the httpd ran out of file descriptors) with the worker MPM [Brian Pane]

  *) Split all Win32 modules [excluding the core components mod_core, 
     mod_so, mod_win32 and the winnt mpm] into individual loadable
     modules, so the administrator may individually disable the former
     compiled-in modules by simply commenting out their LoadModule
     directives.  [William Rowe]

  *) Saved Win32 module authors and porters many future headaches, by
     duplicating the appropriate .h files such as os.h into the include
     directory, including in the build tree.  [William Rowe]

  *) mod_ssl adjustments to help with using toolkits other than OpenSSL:
      Use SSL functions/macros instead of directly dereferencing SSL
      structures wherever possible.
      Add type-casts for the cases where functions return a generic pointer.
      Add $SSL/include to configure search path.
     [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Moved several pointers out of the shared Scoreboard so it is
     more portable, and will present the vhost name across server
     generation restarts.  [William Rowe]

  *) Fix SSLPassPhraseDialog exec: and SSLRandomSeed exec:
     [Doug MacEachern]
Aaron Bannert's avatar
Aaron Bannert committed
Changes with Apache 2.0.30
David Reid's avatar
David Reid committed
  *) Fix the main bug for FreeBSD and threaded MPM's. There are
     still issues (see STATUS) but at least the server will now
     run without crashing the machine.
     [David Reid, Aaron Bannert, Justin Erenkrantz]

  *) Fix a typo in mod_deflate's m4 config section.
     [albert chin (china@thewrittenword.com)]

  *) Fix a couple of mod_proxy problems forwarding HTTP connections
     and handling CONNECT:
     (1) PR #9190  Proxy failed to connect to IPv6 hosts.
     (2) Proxy failed to connect when the first IP address returned by 
         the resolver was unreachable but a secondary IP address was.  
     [Jeff Trawick]

  *) Fix the module identifer as shown in the docs for various core
     modules (e.g., the identifer for mod_log_config was previously
     listed as config_log_module).  PR #9338
     [James Watson <ap2bug@sowega.org>]

  *) Fix LimitRequestBody directive by placing it in the HTTP
     filter.  [Justin Erenkrantz]

  *) Fix mod_proxy seg fault when the proxied server returns 
     an HTTP/0.9 response or a bogus status line.
     [Adam Sussman]

  *) Prevent mod_proxy from truncating one character off the
     end of the status line returned from the proxied server.
     [Adam Sussman, Bill Stoddard]

  *) Eliminate loop in ap_proxy_string_read().
     [Adam Sussman, Bill Stoddard]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Provide $0..$9 results from mod_include regex parsing.
     [William Rowe]

  *) Allow mod-include to look for alternate start & end tags [Ian Holsman]

William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Introduced the ForceLanguagePriority directive, to prevent
     returning MULTIPLE_CHOICES or NONE_ACCEPTABLE in some cases,
     when using Multiviews.  [William Rowe]

  *) Fix a problem which prevented mod_cgid and suexec from working
     together reliably [Greg Ames]

Aaron Bannert's avatar
Aaron Bannert committed
  *) Remove the call to exit() from within mod_auth_digest's post_config
     phase.  [Aaron Bannert]

  *) Fix a problem in mod_auth_digest that could potentially cause
     problems with initialized static data on a system that uses DSOs.
     [Aaron Bannert]

Aaron Bannert's avatar
Aaron Bannert committed
  *) Fix a segfault in the worker MPM that could happen during
     child process exits.  [Brian Pane, Aaron Bannert]

  *) Allow mod_auth_dbm to handle multiple DBM types [Ian Holsman]

  *) Fix matching of vhosts by ip address so we find IPv4
     vhost address when target address is v4-mapped form of
     that address.  [Jeff Trawick]

  *) More performance tweaks to the BNDM string-search algorithm
     used to find "<!--#" tokens in mod_include [Brian Pane]

  *) Miscellaneous small performance fixes: optimized away various
     string copy operations and removed large temp buffers from
     the stack [Brian Pane]

  *) Fixed startup segfault that occurred when a VirtualHost
     directive had a port but no address [Brian Pane]

  *) Allow htdbm to work with multiple DBM types [Ian Holsman]
  *) Win32: Made change to apr_sendfile() to return APR_ENOTIMPL
     if oslevel < WINNT.  This should fix several problems reported
     Against 2.0.28 on Windows 98 [Bill Stoddard]
  *) Win32: Fix bug that could cause CGI scripts with QUERY_STRINGS
     to fail. [Bill Stoddard]

  *) Change core code to allow an MPM to set hard thread/server
     limits at startup.  prefork, worker, and perchild MPMs now have 
     directives to set these limits.  [Jeff Trawick]
  *) Win32: The async AcceptEx() event should be autoreset upon
     successful completion of a wait (WaitForSingleObject). This
     eliminates a number of spurious
     setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed." messages.
     [Bill Stoddard]
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed

  *) Move any load library path environment variables out of 
     apachectl and into a separate environment variable file which
     can be more easily tailored by the admin.  The environment
     variable file as built by Apache may have additional system-
     specific settings.  For example, on OS/390 we tailor the heap
     settings to allow lots of threads.  [Jeff Trawick]
    
  *) Use the new APR pool code to reduce pool-related lock
     contention in the worker MPM.  [Sander Striker]

  *) The POD no longer assumes the child is listening on 127.0.0.1
     and now pulls the first hostname in the list of listeners to
     perform the dummy connect on. This fixes a bug when the user
     had configured the Listen directive for an IP other than
     127.0.0.1. This would result in undead children and error
     messages such as "Connection refused: connect to listener".
     [Aaron Bannert]

  *) The worker MPM now respects the LockFile setting, needed to
     avoid locking problems with NFS.  [Jeff Trawick]

  *) Fix segfault when worker MPM receives SIGHUP.
     [Ian Holsman, Aaron Bannert, Justin Erenkrantz]

  *) Fix bug that could potentially prevent the perchild MPM from
     working with more than one vhost/uid.  [Aaron Bannert]

  *) Change make install and apxs -i processing of DSO modules to 
     perform special handling on platforms where libtool doesn't install 
     mod_foo.so.  This fixes some wonkiness on HP-UX, Tru64, and AIX 
     which prevented standard LoadModule statements from working.
  *) Whenever mod_so is enabled (not just when there are DSOs for
     our modules), do whatever special magic is required for compiling/
     loading third-party modules.  This allows third-party DSOs to
     be used on an AIX build when there were no built-in modules
     built as DSOs.  (This should help on OS/390 and BeOS as well.)
     [Jeff Trawick]

  *) Allow apxs to be used to build DSOs on AIX without requiring the
     user to hard-code the list of import files.  (This should help
     on OS/390 and BeOS as well.)  [Jeff Trawick]
     
William A. Rowe Jr's avatar
 
William A. Rowe Jr committed
  *) Resolved segfault in mod_isapi when configuring with ISAPICacheFile.
     PR 8563, 8919  [William Rowe]
  
  *) Get binary builds working when libapr and libaprutil are built
     shared [Greg Ames]
Ian Holsman's avatar
Ian Holsman committed

  *) Get shared builds of libapr and libaprutil, as well as Apache DSOs,
     working on AIX.  [Aaron Bannert, Dick Dunbar <RLDunbar@pacbell.net>,
     Gary Hook <ghook@us.ibm.com>, Victor Orlikowski, Jeff Trawick]

  *) Fix the handling of SSI directives in which the ">" of the
     terminating "-->" is the last byte in a file [Brian Pane]

  *) Add back in the "suEXEC mechanism enabled (wrapper: /path/to/suexec)"
     message that we had back in apache-1.3 and still have scattered