Skip to content
CHANGES 204 KiB
Newer Older
Jeff Trawick's avatar
Jeff Trawick committed
                                                         -*- coding: utf-8 -*-
Ruediger Pluem's avatar
Ruediger Pluem committed

Jim Jagielski's avatar
Jim Jagielski committed
Changes with Apache 2.4.21

  *) mod_http2: fixed a bug that caused mod_proxy_http2 to be called for window
     updates on requests it had already reported done. Added synchronization
     on early connection/stream close that lets ongoing requests safely drain
     their input filters.
     [Stefan Eissing]

  *) mod_http2: scoreboard updates that summarize the h2 session (and replace
     the last request information) will only happen when the session is idle or 
     in shutdown/done phase. [Stefan Eissing]
     
  *) mod_http2: new "bucket beam" technology to transport buckets across
     threads without buffer copy. Delaying response start until flush or
     enough body data has been accumulated. Overall significanlty smaller
     memory footprint. [Stefan Eissing]
     
  *) core: New CGIVar directive can configure REQUEST_URI to represent the
     current URI being processed instead of always the original request.
     [Jeff Trawick]

  *) scoreboard/status: Restore behavior of showing workers' previous Client,
     VHost and Request values when idle, like in 2.4.18 and earlier. 

  *) mod_http2: r->protocol changed to "HTTP/2.0" (was "HTTP/2") as this will
     give expected syntax in CGI's SERVER_PROTOCOL is more compatible with
     existing major/minor handling. Fixes PR 59313.
  
  *) mod_http2: disabling mmap for file buckets transport due to segmenation
     faults when files change on the fly.
     
Jim Jagielski's avatar
Jim Jagielski committed
Changes with Apache 2.4.20

Yann Ylavic's avatar
Yann Ylavic committed
  *) core: Do not read .htaccess if AllowOverride and AllowOverrideList
     are "None". PR 58528.
Ruediger Pluem's avatar
Ruediger Pluem committed
     [Michael Schlenker <msc contact.de, Ruediger Pluem, Daniel Ruggeri]
Yann Ylavic's avatar
Yann Ylavic committed
  *) mod_proxy_express: Fix possible use of DB handle after close.  PR 59230.
     [Petr <pgajdos suse.cz>]
Ruediger Pluem's avatar
Ruediger Pluem committed

Yann Ylavic's avatar
Yann Ylavic committed
  *) core/util_script: relax alphanumeric filter of enviroment variable names
     on Windows to allow '(' and ')' for passing PROGRAMFILES(X86) et.al.
     unadulterated in 64 bit versions of Windows. PR 46751.  
     [John <john leineweb de>]

  *) mod_http2: incrementing keepalives on each request started so that logging
     %k gives increasing numbers per master http2 connection. 
     New documented variables in env, usable in custom log formats: H2_PUSH,
     H2_PUSHED, H2_PUSHED_ON, H2_STREAM_ID and H2_STREAM_TAG.
     [Stefan Eissing]

  *) mod_http2: more efficient passing of response bodies with less contention
     and file bucket forwarding. [Stefan Eissing]

  *) mod_http2: fix for missing score board updates on request count, fix for
     memory leak on slave connection reuse. [Stefan Eissing]
  *) mod_http2: Fix build on Windows from dsp files.
     [Stefan Eissing] 
Changes with Apache 2.4.19

  *) mod_include: Add variable DOCUMENT_ARGS, with the arguments to the
     request for the SSI document.  [Jeff Trawick]

  *) mod_authz_host: Add a new "forward-dns" authorization type, not relying on
     reverse DNS lookups.  [Fabien]

  *) mod_ssl: Add hooks to allow other modules to perform processing at
     several stages of initialization and connection handling.  See
     mod_ssl_openssl.h.  [Jeff Trawick]

  *) mod_http2: disabling PUSH when client sends GOAWAY. Slave connections are 
     reused for several requests, improved performance and better memory use. 
     [Stefan Eissing]  
  *) mod_rewrite: Don't implicitly URL-escape the original query string
     when no substitution has changed it (like PR50447 but server context)
     [Evgeny Kotkov <evgeny.kotkov visualsvn.com>]

  *) mod_http2: fixes problem with wrong lifetime of file buckets on main
     connection. [Stefan Eissing]
  *) mod_http2: fixes incorrect denial of requests without :authority header.
     [Stefan Eissing]
  *) mod_reqtimeout: Prevent long response times from triggering a timeout once
     the request has been fully read.  PR 59045.  [Yann Ylavic]

  *) ap_expr: expression support for variable HTTP2=on|off. [Stefan Eissing]
  *) mod_http2: give control to async mpm for keepalive timeouts only when
     no streams are open and even if only after 1 sec delay. Under load, event
     mpm discards connections otherwise too quickly. [Stefan Eissing]
  *) mod_ssl: Don't lose track of the SSL context if an unlikely failure occurs
     in ssl_init_ssl_connection().  [Graham Leggett]
Eric Covener's avatar
Eric Covener committed
  *) mod_rewrite: Add QSL|qslast flag to allow rewrites to files with
     literal question marks in their names. PR 58777. [Eric Covener]

  *) event: use pre_connection hook to properly initialize connection state for
     slave connections. use protocol_switch hook to initialize server config
     early based on SNI selected vhost. 
     [Stefan Eissing]
  *) hostname: Test and log useragent_host per-request across various modules,
     including the scoreboard, expression and rewrite engines, setenvif,
     authz_host, access_compat, custom logging, ssl and REMOTE_HOST variables.
     PR55348  [William Rowe]
  *) core: Track the useragent_host per-request when mod_remoteip or similar
     modules track a per-request useragent_ip.  Modules should be updated
     to inquire for ap_get_useragent_host() in place of ap_get_remote_host().
     [William Rowe]

Stefan Eissing's avatar
Stefan Eissing committed
  *) core: fix a bug in <UnDefine ...> directive processing. When used, the last
     <Define...>'ed variable was also withdrawn. PR 59019
     [Christophe Jaillet]

  *) mod_http2: Accept-Encoding is, when present on the initiating request, 
     added to push promises. This lets compressed content work in pushes.
     by the client. [Stefan Eissing]

  *) mod_http2: fixed possible read after free when streams were cancelled early
     by the client. [Stefan Eissing]

  *) mod_http2: fixed possible deadlock during connection shutdown. Thanks to 
     @FrankStolle for reporting and getting the necessary data.
     [Stefan Eissing]

  *) mod_http2: fixed apr_uint64_t formatting in a log statement to user proper 
     APR def, thanks to @Sp1l.
  *) mod_http2: number of worker threads allowed to a connection is adjusting 
     dynamically. Starting with 4, the number is doubled when streams can be 
     served without block on http/2 connection flow. The number is halfed, when
     the server has to wait on client flow control grants. 
     This can happen with a maximum frequency of 5 times per second. 
     When a connection occupies too many workers, repeatable requests 
     (GET/HEAD/OPTIONS) are cancelled and placed back in the queue. Should that 
     not suffice and a stream is busy longer than the server timeout, the 
     connection will be aborted with error code ENHANCE_YOUR_CALM.
     This does *not* limit the number of streams a client may open, rather the
     number of server threads a connection might use.
     [Stefan Eissing]
  *) mod_http2: allowing link header to specify multiple "rel" values, 
     space-separated inside a quoted string. Prohibiting push when Link 
     parameter "nopush" is present.
     [Stefan Eissing]

  *) mod_http2: reworked connection state handling. Idle connections accept a
     GOAWAY from the client without further reply. Otherwise the
     module makes a best effort to send one last GOAWAY to the client.
  *) mod_http2: the values from standard directives Timeout and KeepAliveTimeout
     properly are applied to http/2 connections.
     [Stefan Eissing]

  *) mod_http2: idle connections are returned to async mpms. new hook
     "pre_close_connection" used to send GOAWAY frame when not already done.
     Setting event mpm server config "by hand" for the main connection to
     the correct negotiated server.
     [Stefan Eissing]

  *) mod_http2: keep-alive blocking reads are done with 1 second timeouts to
     check for MPM stopping. Will announce early GOAWAY and finish processing
     open streams, then close.
     [Stefan Eissing]

  *) mod_http2: bytes read/written on slave connections are reported via the
     optional mod_logio functions. Fixes PR 58871.

  *) prefork: Initialize the POD when running in ONE_PROCESS (or -X) mode to
     avoid a crash.  [Jan Kaluza, Yann Ylavic]

  *) mod_ssl: When SSLVerify is disabled (NONE), don't force a renegotiation if
     the SSLVerifyDepth applied with the default/handshaken vhost differs from
     the one applicable with the finally selected vhost.  [Yann Ylavic]

  *) core: Ensure that httpd exits with an error status when the MPM fails
     to run.  [Yann Ylavic]

  *) mod_ssl: Fix a possible memory leak on restart for custom [EC]DH params.
     [Jan Kaluza, Yann Ylavic]

  *) mod_ssl: Add SSLOCSPProxyURL to add the possibility to do all queries
     to OCSP responders through a HTTP proxy. [Ruediger Pluem]

  *) mod_proxy: Play/restore the TLS-SNI on new backend connections which
     had to be issued because the remote closed the previous/reusable one
     during idle (keep-alive) time.  [Yann Ylavic]

  *) mod_cache_socache: Fix a possible cached entity body corruption when it
     is received from an origin server in multiple batches and forwarded by
     mod_proxy.  [Yann Ylavic]

Loading full blame...