h2_conn_io.c

Checkout Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* modules/http2: reverting r1859724, as no good.

  1. … 22 more files in changeset.
*) mod_http2: internal code cleanups and simplifications. Common output code for

h2 and h2c protocols, using nested mutex locks for simplified calls. [Stefan Eissing]

  1. … 23 more files in changeset.
*) mod_http2: new configuration directive: ```H2Padding numbits``` to control

padding of HTTP/2 payload frames. 'numbits' is a number from 0-8,

controlling the range of padding bytes added to a frame. The actual number

added is chosen randomly per frame. This applies to HEADERS, DATA and PUSH_PROMISE

frames equally. The default continues to be 0, e.g. no padding. [Stefan Eissing]

*) mod_http2: ripping out all the h2_req_engine internal features now that mod_proxy_http2

has no more need for it. Optional functions are still declared but no longer implemented.

While previous mod_proxy_http2 will work with this, it is recommeneded to run the matching

versions of both modules. [Stefan Eissing]

*) mod_proxy_http2: changed mod_proxy_http2 implementation and fixed several bugs which

resolve PR63170. The proxy module does now a single h2 request on the (reused)

connection and returns. [Stefan Eissing]

  1. … 21 more files in changeset.
*) mod_http2: Configuration directoves H2Push and H2Upgrade can now be specified per

Location/Directory, e.g. disabling PUSH for a specific set of resources. [Stefan Eissing]

*) mod_http2: HEAD requests to some module such as mod_cgid caused the stream to

terminate improperly and cause a HTTP/2 PROTOCOL_ERROR.

Fixes <https://github.com/icing/mod_h2/issues/167>. [Michael Kaufmann]

  1. … 29 more files in changeset.
mod_http2: bringing some signed/unsigned casting goodness, aligning with github mod-h2 again

  1. … 11 more files in changeset.
On the trunk:

mod_http2: removing comments that documented that greenbytes has untransferable copyright to the sources. The rights, of course, remain unaffected, but maybe some people can sleep better.

  1. … 51 more files in changeset.
correct copyright/license headers

  1. … 23 more files in changeset.
On the trunk:

mod_http2: update after backport

  1. … 2 more files in changeset.
On the trunk:

*) mod_http2: not counting file buckets again stream max buffer limits.

Effectively transfering static files in one step from slave to master

connection. [Stefan Eissing]

  1. … 7 more files in changeset.
On the trunk:

*) mod_http2: rework of stream resource cleanup to avoid a crash in a close

of a lingering connection. Prohibit special file bucket beaming for

shared buckets. Files sent in stream output now use the stream pool

as read buffer, reducing memory footprint of connections.

[Yann Ylavic, Stefan Eissing]

  1. … 16 more files in changeset.
On the trunk:

*) mod_http2: streaming of request output now reacts timely to data

from other streams becoming available. Same for new incoming requests.

  1. … 11 more files in changeset.
On the trunk:

*) mod_http2: fix for possible page fault when stream is resumed during

session shutdown. [sidney-j-r-m (github)]

*) mod_http2: fix for h2 session ignoring new responses while already

open streams continue to have data available. [Stefan Eissing]

  1. … 5 more files in changeset.
On the trunk:

mod_http2: adding support for MergeTrailers directive.

mod_http2: limiting DATA frame sizes by TLS record sizes in use on the

connection. Flushing outgoing frames earlier.

  1. … 8 more files in changeset.
mod_http2: AP_DEBUG_ASSERT changed to ap_assert
  1. … 18 more files in changeset.
various fixes, mod_cgid interop, response/trailer forwarding rewritten, stability
  1. … 38 more files in changeset.
more apr_uint32_t usage where appropriate, signed/unsigned warning detox, stream reset clears buffers immediately
  1. … 12 more files in changeset.
Prevent dangling buckets by safely (and always) cleanup passed out (master)

brigades.

mod_http2: fixing APLOG_NO overdose and some log levels
  1. … 2 more files in changeset.
assign IDs to new AH*'s

  1. … 5 more files in changeset.
spatch some AH* IDs to pick up the new INFO level messages,

also hit old DEBUG messages.

  1. … 4 more files in changeset.
mod_http2: more rigid error handling in DATA frame assembly
  1. … 3 more files in changeset.
mod_http2: fix for partial file buckets in master connection output, flushing of output revisited, uplift of some 2.4.x compat changes on slave filters
  1. … 12 more files in changeset.
mod_http2: rewrote TLS buffering on master connection
  1. … 8 more files in changeset.
mod_http2: some more cleanup on stream/task/session takedowns
  1. … 7 more files in changeset.

Ensure http2 follows http in the meaning of

status WRITE (meaning 'in the request processing

phase' even if still consuming the request body,

not literally in a 'now writing' state).

Ensure a number of MPMs and the h2 connection io

no longer clobber the request status line during

state-only changes. While at it, clean up some

very ugly formatting and unnecessary decoration,

and avoid the wordy _from_conn() flavor when we

are not passing a connection_rec.

Ensure the useragent_ip is only used in the case

where it has been initialized, fall back on the

connection's remote_ip if the status is accidently

updated from an uninitialized request_rec.

  1. … 8 more files in changeset.
FLUSHing H2EOS and H2EOC buckets to preserve destruction order, improving bucket beams to disengage from live green buckets on shutdown
  1. … 4 more files in changeset.
mod_http2: prohibit unnecessary flushing on master conn
mod_http2: some cleanup in GGOAWAY handling, disabling PUSH when rmeote sends GOAWAY
  1. … 7 more files in changeset.
mod_http2: fix for bucket lifetime on master conn, mod_proxy_http2: flow control from front- to backend h2 connection
  1. … 20 more files in changeset.
mod_http2: avoid unnecessary out flushing, avoid scoreboard updates unless code/msg changes
  1. … 3 more files in changeset.