-*- coding: utf-8 -*-
Changes with mod_fcgid 2.3.9

 *) Revert fix for PR 53693, added in 2.3.8 but undocumented.  Fix
    issues with a minor optimization added in 2.3.8.  [Jeff Trawick]

Changes with mod_fcgid 2.3.8

 *) SECURITY: CVE-2013-4365 (cve.mitre.org)
    Fix possible heap buffer overwrite.  Reported and solved by:
    [Robert Matthews <rob tigertech.com>]

 *) Add experimental cmake-based build system for Windows.  [Jeff Trawick]

 *) Correctly parse quotation and escaped spaces in FcgidWrapper and the
    AAA Authenticator/Authorizor/Access directives' command line argument,
    as currently documented.  PR 51194  [William Rowe]

 *) Honor quoted FcgidCmdOptions arguments (notably for InitialEnv
    assignments).  PR 51657  [William Rowe]

 *) Conform script response parsing with mod_cgid and ensure no response
    body is sent when ap_meets_conditions() determines that request
    conditions are met.  [Chris Darroch]

 *) Improve logging in access control hook functions.  [Chris Darroch]

 *) Avoid making internal sub-requests and processing Location headers
    when in FCGI_AUTHORIZER mode, as the auth hook functions already
    treat Location headers returned by scripts as an error since
    redirections are not meaningful in this mode.  [Chris Darroch]

Changes with mod_fcgid 2.3.7

 *) Introduce FcgidWin32PreventOrphans directive on Windows to use OS
    Job Control Objects to terminate all running fcgi's when the worker
    process has been abruptly terminated. PR: 51078
    [Thangaraj AntonyCrouse <thangaraj gmail.com>]

 *) Periodically clean out the brigades which are pulling in the request
    body for handoff to the fcgid child. PR: 51749
    [Dominic Benson <dominic.benson thirdlight.com>]

 *) Resolve crash during graceful restarts. PR 50309
    [Mario Brandt <JBlond gmail.com>]

 *) Solve latency/cogestion of resolving effective user file access rights
    when no such info is desired, for config related filename stats.
    PR: 51020 [Thangaraj AntonyCrouse <thangaraj gmail.com>, William Rowe]

 *) Fix regression in 2.3.6 which broke process controls when using vhost-
    specific configuration.  [Jeff Trawick]

 *) Account for first process in class in the spawn score.  [Jeff Trawick]

Changes with mod_fcgid 2.3.6

 *) SECURITY: CVE-2010-3872 (cve.mitre.org)
    Fix possible stack buffer overwrite.  Diagnosed by the reporter.
    PR 49406.  [Edgar Frank <ef-lists email.de>]

 *) Change the default for FcgidMaxRequestLen from 1GB to 128K.
    Administrators should change this to an appropriate value based on
    site requirements.  [Jeff Trawick]

 *) Allow FastCGI apps more time to exit at shutdown before being
    forcefully killed.  [Jeff Trawick]

 *) Correct a problem that resulted in FcgidMaxProcesses being ignored
    in some situations.  PR 48981.  [<rkosolapov gmail.com>]

 *) Fix the search for processes with the proper vhost config when
    ServerName isn't set in every vhost or a module updates
    r->server->server_hostname dynamically (e.g., mod_vhost_cdb)
    or a module updates r->server dynamically (e.g., mod_vhost_ldap).
    [Jeff Trawick]

 *) FcgidPassHeader now maps header names to environment variable names
    in the usual manner: The header name is converted to upper case and
    is prefixed with HTTP_.  An additional environment variable is
    created with the legacy name.  PR 48964.  [Jeff Trawick]

 *) Allow processes to be reused within multiple phases of a request
    by releasing them into the free list as soon as possible.
    [Chris Darroch]

 *) Fix lookup of process command lines when using FcgidWrapper or
    access control directives, including within .htaccess files.
    [Chris Darroch]

 *) Resolve a regression in 2.3.5 with httpd 2.0.x on some Unix platforms;
    ownership of mutex files was incorrect, resulting in a startup failure.
    PR 48651.  [Jeff Trawick, <pservit gmail.com>]

 *) Return 500 instead of segfaulting when the application returns no output.
    [Tatsuki Sugiura <sugi nemui.org>, Jeff Trawick]

 *) In FCGI_AUTHORIZER role, avoid spawning a new process for every
    different HTTP request.  [Chris Darroch]

Changes with mod_fcgid 2.3.5

 *) Stop using the unsuppressable "notice" log level for debug and
    informational messages.  PR 48536.  [Jeff Trawick]

 *) Respect DEFAULT_REL_RUNTIMEDIR for default values of FcgidIPCDir and
    FcgidProcessTableFile.  [Jeff Trawick]

 *) Resolve fatal EDEADLK errors with threaded MPMs on Solaris.  [Jeff Trawick]

 *) Display information about active processes in the server-status page.
    [Ryan Pan]

 *) Fix compatibility of httpd.conf-editing logic with non-GNU awk.  PR 48067.
    [Hans Werner Strube <strube physik3.gwdg.de>]

 *) Fix startup errors creating shared memory in constrained systems, such
    as OS X in its default configuration.  This is a regression since mod_fcgid
    2.2.  [Jeff Trawick]

 *) Recover from most "Resource temporarily unavailable" errors writing the
    request to the FastCGI application.  These were common with large request
    bodies on Mac OS X and intermittent on Solaris.  PR 48025.  [Jeff Trawick]

 *) Fix a bug in fixconf.sed that resulted in a prefix of "FcgidFcgid" on the
    updated directives.  [Dan Hulme <dhulme gmail.com>]

 *) Fix possible corruption or truncation of request bodies which exceed
    FcgidMaxRequestInMem.  This is a regression since mod_fcgid 2.2, which
    effectively ignored FcgidMaxRequestInMem if larger than 8K.  PR 48021.
    [Jeff Trawick]

 *) Fix handling of the request body when a FastCGI access checker/
    authenticator/authorizer (AAA) was configured.  The body wasn't available
    for the request handler.  PR 47973.
    [Jeff Trawick, Barry Scott <barry.scott onelan.co.uk>]

 *) Fix handling of FcgidCmdOptions so that it can apply to wrapper scripts
    which were defined with command-line arguments on the FcgidWrapper
    directive.  [Jeff Trawick]

Changes with mod_fcgid 2.3.4

 *) Corrected unix 'make install' target regression in 2.3.3.  [Jeff Trawick]

Changes with mod_fcgid 2.3.3

 *) Add FcgidCmdOptions directive to associate some of the existing
    configuration settings with a specific command.  [Jeff Trawick]

 *) Allow/respect virtual host settings for the following directives:
    FcgidBusyTimeout, FcgidMaxProcessesPerClass, FcgidMinProcessesPerClass,
    FcgidIdleTimeout, and FcgidProcessLifetime.  [Jeff Trawick]

Changes with mod_fcgid 2.3.2

 *) Fix a make install DESTDIR problem handling the reference manual and
    potentially other files (specific to 2.3.1).
    [Paul Howarth <paul city-fan.org>]

 *) Fix a mod_fcgid 2.3.1 failure with <sys/mutex.h> when building for
    httpd 2.0.x on some platforms.  [Paul Howarth <paul city-fan.org>]

 *) Termination of idle processes after inactivity timeout can now be
    disabled by setting FcgidIdleTimeout to 0.  Termination of idle
    processes based on the process lifetime can now be disabled by setting
    FcgidProcessLifeTime to 0.  FcgidMaxRequestsPerProcess now accepts 0
    for unlimited.  [Ricardo Cantu <ricardo smartcsc.com>]

 *) All directives have been renamed in order to use a common prefix "Fcgid".
    Underscores in directive names have been eliminated in favor of
    CamelCase. The old directive names will still work but are deprecated.
    To fix your configuration you can use the sed script build/fixconf.sed.
    The following tables contains old and new directive names.

    Old Name                           New Name
    ...................................................................
    BusyScanInterval                   FcgidBusyScanInterval
    BusyTimeout                        FcgidBusyTimeout
    DefaultInitEnv                     FcgidInitialEnv
    DefaultMaxClassProcessCount        FcgidMaxProcessesPerClass
    DefaultMinClassProcessCount        FcgidMinProcessesPerClass
    ErrorScanInterval                  FcgidErrorScanInterval
    FastCgiAccessChecker               FcgidAccessChecker
    FastCgiAccessCheckerAuthoritative  FcgidAccessCheckerAuthoritative
    FastCgiAuthenticator               FcgidAuthenticator
    FastCgiAuthenticatorAuthoritative  FcgidAuthenticatorAuthoritative
    FastCgiAuthorizer                  FcgidAuthorizer
    FastCgiAuthorizerAuthoritative     FcgidAuthorizerAuthoritative
    FCGIWrapper                        FcgidWrapper
    IdleScanInterval                   FcgidIdleScanInterval
    IdleTimeout                        FcgidIdleTimeout
    IPCCommTimeout                     FcgidIOTimeout
    IPCConnectTimeout                  FcgidConnectTimeout
    MaxProcessCount                    FcgidMaxProcesses
    MaxRequestInMem                    FcgidMaxRequestInMem
    MaxRequestLen                      FcgidMaxRequestLen
    MaxRequestsPerProcess              FcgidMaxRequestsPerProcess
    OutputBufferSize                   FcgidOutputBufferSize
    PassHeader                         FcgidPassHeader
    PHP_Fix_Pathinfo_Enable            FcgidFixPathinfo
    ProcessLifeTime                    FcgidProcessLifeTime
    SharememPath                       FcgidProcessTableFile
    SocketPath                         FcgidIPCDir
    SpawnScore                         FcgidSpawnScore
    SpawnScoreUpLimit                  FcgidSpawnScoreUpLimit
    TerminationScore                   FcgidTerminationScore
    TimeScore                          FcgidTimeScore
    ZombieScanInterval                 FcgidZombieScanInterval

 *) Separate classes by virtual host also on Windows.  [Rainer Jung]

 *) Log client IP address with many more error log messages.  [Jeff Trawick]

 *) Fix basic implementation of FcgidMaxRequestInMem and FcgidMaxRequestLen
    directives.  [Jeff Trawick]

 *) Merge per-directory directives so that they can be inherited or
    overridden within other containers as expected.  Merge server config/
    virtual host directives so that they can be inherited or overridden
    within a virtual host as expected. [Jeff Trawick]

 *) Use the virtual host settings for the request being processed instead
    of those of the first FastCGI request handled by this httpd child process.
    Affected directives: FcgidBusyTimeout, FcgidIOTimeout,
    FcgidConnectTimeout, FcgidMaxRequestsPerProcess, and FcgidOutputBufferSize.
    [Jeff Trawick]

 *) Directives which previously were ignored in a virtual host context are no
    longer allowed.  [Jeff Trawick]

 *) Add an optional flag "virtual" to FcgidWrapper.
    If virtual is set, the URLs passed to the wrapper are not
    checked, whether they resolve to a file.  [Rainer Jung]

 *) Make the second argument (suffix) for FcgidWrapper optional.
    A wrapper defined without a suffix applies to all URLs, unless
    there is another more specific wrapper with a suffix.  [Rainer Jung]

Changes with mod_fcgid 2.3.1

 *) Suppress "need AuthType to note auth failure" error-level messages when a
    FastCGIAccessChecker fails without any other kind of authentication
    (Basic, Digest) configured.  [Eric Covener]

 *) Complete the unix port to 2.3-dev trunk.  [William Rowe]

 *) Provide a default, mandatory environment as with mod_cgi (with the
    inclusion of LD_LIBRARY_PATH or similar variables on other platforms),
    unless overridden by DefaultInitEnv.  [William Rowe]

 *) Handle DefaultInitEnv for case-insensitive platforms by forcing the env
    variable names to uppercase on Win32, OS2 and Netware.  [William Rowe]

 *) Don't try to set the ownership of the socket directory unless running
    as root and the directory was just created.  This allows the default
    httpd.conf (with some daemon User/Group) to be used by non-root.
    [Jeff Trawick]

 *) Fix formatting of several messages, including the oft-seen "mod_fcgid:
    Can't create shared memory for size %zu byte".  [Jeff Trawick]

 *) Fix declared names of FastCgiAuthenticator and FastCgiAuthenticator-
    Authoritative directives, allowing them to be used.  [Ulf Haueisen
    <ulf dvlp.de>]

 *) Fix vhost-specific DefaultInitEnv settings.  Previously, when setting
    multiple virtual hosts with the same SuexecUserGroup user and group, the
    process manager use the same process pool for both virtual hosts. This
    means if one virtual host has a DefaultInitEnv and the other has
    different values set, a fastcgi request from any of these virtual host
    can go to the same processes, which is inconsistent (a request from
    virtualhost a with DefaultInitEnv VAL "a", can go to a process spawned
    with virtualhost b with DefaultInitEnv VAL "b" set).  [Gabriel Barazer
    <gabriel oxeva.fr>]

Note: A log of changes released before moving to the ASF (releases 2.2 and
earlier) is in the file ChangeLog.