This is a rewrite of the HTTP/2 main connection handling to use APR
pollsets for dispatching requests and collecting responses. This
allows mod_h2 to be more responsive at less cpu cost and simplifies
connection state handling.
However, as a new implementation, this brings the risk of new bugs
and incompatibilities. It survives test suite and load tests. If you can
give it a run on your machine, feedback is appreciated!
- HTTP/2 connections now use pollsets to monitor the status of the
ongoing streams and their main connection. - Fixed a bug where, without 'H2SerializeHeaders' some errors, such
as a input timeout, did not produce the correct response. - Added directive 'H2StreamTimeout' to configure a separate value for HTTP/2
streams, overriding server's 'Timeout' configuration. [rpluem] - Removed work-arounds for older versions of libnghttp2 and checking
during configure that at least version 1.15.0 is present. Which, due
to its age, should not make a difference to anyone. - The HTTP/2 connection state handler, based on an experiment and draft
at the IETF http working group (abandoned for some time), has been removed. - H2SerializeHeaders no longer has an effect. A warning is logged when it is
set to "on". The switch enabled the internal writing of requests to be parsed
by the internal HTTP/1.1 protocol handler and was introduced to avoid
potential incompatibilities during the introduction of HTTP/2. - Removed the abort/redo of tasks when mood swings lower the active
limit. This probably did hurt the server more than it helped. Some
setup, like proxied connections, can be slow to respond to the
abort of a connection.