Project description.

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.

The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards

Apache 2.0.49 Changelog
  • SECURITY: CVE-2004-0174 (cve.mitre.org) Fix starvation issue on listening sockets where a short-lived connection on a rarely-accessed listening socket will cause a child to hold the accept mutex and block out new connections until another connection arrives on that rarely-accessed listening socket. With Apache 2.x there is no performance concern about enabling the logic for platforms which don't need it, so it is enabled everywhere except for Win32. [Jeff Trawick]
  • mod_cgid: Fix storage corruption caused by use of incorrect pool. [Jeff Trawick]
  • Win32: find_read_listeners was not correctly handling multiple listeners on the Win32DisableAcceptEx path. [Bill Stoddard]
  • Fix bug in mod_usertrack when no CookieName is set. PR 24483. [Manni Wood ]
  • Fix some piped log problems: bogus "piped log program '(null)' failed" messages during restart and problem with the logger respawning again after Apache is stopped. PR 21648, PR 24805. [Jeff Trawick]
  • Fixed file extensions for real media files and removed rpm extension from mime.types. PR 26079. [Allan Sandfeld ]
  • Remove compile-time length limit on request strings. Length is now enforced solely with the LimitRequestLine config directive. [Paul J. Reder]
  • mod_ssl: Send the Close Alert message to the peer before closing the SSL session. PR 27428. [Madhusudan Mathihalli, Joe Orton]
  • SECURITY: CVE-2004-0113 (cve.mitre.org) mod_ssl: Fix a memory leak in plain-HTTP-on-SSL-port handling. PR 27106. [Joe Orton]
  • mod_ssl: Fix bug in passphrase handling which could cause spurious failures in SSL functions later. PR 21160. [Joe Orton]
  • mod_log_config: Fix corruption of buffered logs with threaded MPMs. PR 25520. [Jeff Trawick]
  • Fix mod_include's expression parser to recognize strings correctly even if they start with an escaped token. [André Malo]
  • Add fatal exception hook for use by diagnostic modules. The hook is only available if the --enable-exception-hook configure parm is used and the EnableExceptionHook directive has been set to "on". [Jeff Trawick]
  • Allow mod_auth_digest to work with sub-requests with different methods than the original request. PR 25040. [Josh Dady ]
  • fix "Expected > but saw " errors in nested, argumentless containers. ["Philippe M. Chiasson" ]
  • mod_auth_ldap: Fix some segfaults in the cache logic. PR 18756. [Matthieu Estrade , Brad Nicholes]
  • mod_cgid: Restart the cgid daemon if it crashes. PR 19849 [Glenn Nielsen ]
  • The whole codebase was relicensed and is now available under the Apache License, Version 2.0 (http://www.apache.org/licenses). [Apache Software Foundation]
  • Fixed cache-removal order in mod_mem_cache. [Jean-Jacques Clar, Cliff Woolley]
  • mod_setenvif: Fix the regex optimizer, which under circumstances treated the supplied regex as literal string. PR 24219. [André Malo]
  • ap_mpm.h: Fix include guard of ap_mpm.h to reference mpm instead of mmn. [André Malo]
  • mod_rewrite: Catch an edge case, where strange subsequent RewriteRules could lead to a 400 (Bad Request) response. [André Malo]
  • Keep focus of ITERATE and ITERATE2 on the current module when the module chooses to return DECLINE_CMD for the directive. PR 22299. [Geoffrey Young ]
  • Add support for IMT minor-type wildcards (e.g., text/ to ExpiresByType. PR#7991 [Ken Coar]
  • Fix segfault in mod_mem_cache cache_insert() due to cache size becoming negative. PR: 21285, 21287 [Bill Stoddard, Massimo Torquati, Jean-Jacques Clar]
  • core.c: If large file support is enabled, allow any file that is greater than AP_MAX_SENDFILE to be split into multiple buckets. This allows Apache to send files that are greater than 2gig. Otherwise we run into 32/64 bit type mismatches in the file size. [Brad Nicholes]
  • proxy_http fix: mod_proxy hangs when both KeepAlive and ProxyErrorOverride are enabled, and a non-200 response without a body is generated by the backend server. (e.g.: a client makes a request containing the "If-Modified-Since" and "If-None-Match" headers, to which the backend server respond with status 304.) [Graham Wiseman , Richard Reiner]
  • mod_dav: Reject requests which include an unescaped fragment in the Request-URI. PR 21779. [Amit Athavale ]
  • Build array of allowed methods with proper dimensions, fixing possible memory corruption. [Jeff Trawick]
  • mod_ssl: Fix potential segfault on lookup of SSL_SESSION_ID. PR 15057. [Otmar Lendl ]
  • mod_ssl: Fix streaming output from an nph- CGI script. PR 21944 [Joe Orton]
  • mod_usertrack no longer inspects the Cookie2 header for the cookie name. PR 11475. [Chris Darrochi ]
  • mod_usertrack no longer overwrites other cookies. PR 26002. [Scott Moore ]
  • worker MPM: fix stack overlay bug that could cause the parent process to crash. [Jeff Trawick]
  • Win32: Add Win32DisableAcceptEx directive. This Windows NT/2000/CP directive is useful to work around bugs in some third party layered service providers like virus scanners, VPN and firewall products, that do not properly handle WinSock 2 APIs. Use this directive if your server is issuing AcceptEx failed messages. [Allan Edwards, Bill Rowe, Bill Stoddard, Jeff Trawick]
  • Make REMOTE_PORT variable available in mod_rewrite. PR 25772. [André Malo]
  • Fix a long delay with CGI requests and keepalive connections on AIX. [Jeff Trawick]
  • mod_autoindex: Add 'XHTML' option in order to allow switching between HTML 3.2 and XHTML 1.0 output. PR 23747. [André Malo]
  • Add XHTML Document Type Definitions to httpd.h (minor MMN bump). [André Malo]
  • mod_ssl: Advertise SSL library version as determined at run-time rather than at compile-time. PR 23956. [Eric Seidel ]
  • mod_ssl: Fix segfault on a non-SSL request if the 'c' log format code is used. PR 22741. [Gary E. Miller ]
  • Fix build with parallel make. PR 24643. [Joe Orton]
  • mod_rewrite: In external rewrite maps lookup keys containing a newline now cause a lookup failure. PR 14453. [Cedric Gavage , André Malo]
  • Backport major overhaul of mod_include's filter parser from 2.1. The new parser code is expected to be more robust and should catch all of the edge cases that were not handled by the previous one. The 2.1 external API changes were hidden by a wrapper which is expected to keep the API backwards compatible. [André Malo]
  • Add a hook (insert_error_filter) to allow filters to re-insert themselves during processing of error responses. Enable mod_expires to use the new hook to include Expires headers in valid error responses. This addresses an RFC violation. It fixes PRs 19794, 24884, and 25123. [Paul J. Reder]
  • Add Polish translation of error messages. PR 25101. [Tomasz Kepczynski ]
  • Add AP_MPMQ_MPM_STATE function code for ap_mpm_query. (Not yet supported for BeOS or OS/2 MPMs.) [Jeff Trawick, Brad Nicholes, Bill Stoddard]
  • Add mod_status hook to allow modules to add to the mod_status report. [Joe Orton]
  • Fix htdbm to generate comment fields in DBM files correctly. [Justin Erenkrantz]
  • mod_dav: Use bucket brigades when reading PUT data. This avoids problems if the data stream is modified by an input filter. PR 22104. [Tim Robbins , André Malo]
  • Fix RewriteBase directive to not add double slashes. [André Malo]
  • Improve 'configure --help' output for some modules. [Astrid Keßler]
  • Correct UseCanonicalName Off to properly check incoming port number. [Jim Jagielski]
  • Fix slow graceful restarts with prefork MPM. [Joe Orton]
  • Fix a problem with namespace mappings being dropped in mod_dav_fs; if any property values were set which defined namespaces these came out mangled in the PROPFIND response. PR 11637. [Amit Athavale ]
  • mod_dav: Return a WWW-auth header for MOVE/COPY requests where the destination resource gives a 401. PR 15571. [Joe Orton]
  • SECURITY: CVE-2003-0020 (cve.mitre.org) Escape arbitrary data before writing into the errorlog. Unescaped errorlogs are still possible using the compile time switch "-DAP_UNSAFE_ERROR_LOG_UNESCAPED". [Geoffrey Young, André Malo]
  • mod_autoindex / core: Don't fail to show filenames containing special characters like '%'. PR 13598. [André Malo]
  • mod_status: Report total CPU time accurately when using a threaded MPM. PR 23795. [Jeff Trawick]
  • Fix memory leak in handling of request bodies during reverse proxy operations. PR 24991. [Larry Toppi ]
  • Win32 MPM: Implement MaxMemFree to enable setting an upper limit on the amount of storage used by the bucket brigades in each server thread. [Bill Stoddard]
  • Modified the cache code to be header-location agnostic. Also fixed a number of other cache code bugs related to PR 15852. Includes a patch submitted by Sushma Rai . This fixes mod_mem_cache but not mod_disk_cache yet so I'm not closing the PR since that is what they are using. [Paul J. Reder]
  • complain via error_log when mod_include's INCLUDES filter is enabled, but the relevant Options flag allowing the filter to run for the specific resource wasn't set, so that the filter won't silently get skipped. next remove itself, so the warning will be logged only once [Stas Bekman, Jeff Trawick, Bill Rowe]
  • mod_info: HTML escape configuration information so it displays correctly. PR 24232. [Thom May]
  • Restore the ability to add a description for directories that don't contain an index file. (Broken in 2.0.48) [André Malo]
  • Fix a problem with the display of empty variables ("SetEnv foo") in mod_include. PR 24734 [Markus Julen ]
  • mod_log_config: Log the minutes component of the timezone correctly. PR 23642. [Hong-Gunn Chew ]
  • mod_proxy: Fix cases where an invalid status-line could be sent to the client. PR 23998. [Joe Orton]
  • mod_ssl: Fix segfaults at startup if other modules which use OpenSSL are also loaded. [Joe Orton]
  • mod_ssl: Use human-readable OpenSSL error strings in logs; use thread-safe interface for retrieving error strings. [Joe Orton]
  • mod_expires: Initialize ExpiresDefault to NULL instead of "" to avoid reporting an Internal Server error if it is used without having been set in the httpd.conf file. PR: 23748, 24459 [André Malo, Liam Quinn ]
  • mod_autoindex: Don't omit the start tag if the SuppressIcon option is set. PR 21668. [Jesse Tie-Ten-Quee ]
  • mod_include no longer allows an ETag header on 304 responses. PR 19355. [Geoffrey Young , André Malo]
  • EBCDIC: Convert header fields to ASCII before sending (broken since 2.0.44). [Martin Kraemer]
  • Fix the inability to log errors like exec failure in mod_ext_filter/mod_cgi script children. This was broken after such children stopped inheriting the error log handle. [Jeff Trawick]
  • Fix mod_info to use the real config file name, not the default config file name. [Aryeh Katz ]
  • Set the scoreboard state to indicate logging prior to running logging hooks so that server-status will show 'L' for hung loggers instead of 'W'. [Jeff Trawick]