Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1878010 is being indexed.

Easy proposals
Fix t/modules/filter.t tests for the case where MIME config ends

up with ".xml" mapped to text/xml not application/xml.

Skip mod_setenvif bug test for versions without the fix.

"" is appropriate default DEFAULT_REL_STATEDIR

core, protocol: reject invalid Content-Length ASAP.

Don't let invalid invalid Content-Length header go beyond ap_read_request()

and protocol validation. The check in ap_http_filter() is still useful if

some modules mangles the header, but it's too late for the usual case.

core,modules: provide/use ap_parse_strict_length() helper.

It helps simplifying a lot of duplicated code based on apr_strtoff(), while

also rejecting leading plus/minus signs which are dissalowed in Content-Length

and (Content-)Range headers.

  1. … 4 more files in changeset.
propose PR64365

[skip ci]


PR 64365: proxy_fcgi doesn't check expression before unsetting var

Submitted By: Michael König <mail>

Committed By: covener

fr doc rebuild.

fr doc XML file update.

fr doc rebuild.

fr doc XML file update.

Vote mod_http2

mod_ssl: follow up to r1877397: fix SSL_OP_NO_RENEGOT*I*ATION typo.

Should work better now :)

Follow up to r1877785: ap_filter_should_yield() is not NULL safe :p

ap_filter_output_pending(): test where each filter should yield after running.

Since running a filter may pass data next to it, ap_filter_output_pending()

should test for ap_filter_should_yield(f->next) after each f call, otherwise

it won't take into account new pending data in filters it just walked.

proposing backport of 1877783
*) mod_http2: Fixed regression that caused connections to close when mod_reqtimeout

was configured with a handshake timeout. Fixes gitub issue #196.

Include Angle-bracket form to Quoted form

mod_proxy: binary search for ProxyErrorOverride status codes.

The list can be rather long, speed up runtime by sorting the status codes in

error_override_codes and using binary search from ap_proxy_should_override().

Merge r1877708 from trunk:

mention relative path behavior, offline question

mention relative path behavior, offline question

mod_proxy_http: follow up to r1877696: reindent.

No functional changes.

mod_proxy_http: axe ap_proxy_should_override() duplicate checks.

mod_proxy_http: follow up to r1877646: send Upgrade header with 101 response.

Also, add a comment about why we forward the Upgrade header in non-101

responses provided the protocol matches the upgrade= configuration.

Windows : do not include ap_config_auto.h

Windows bits for mod_log_json.dsp

mod_proxy_http: handle Upgrade requests and upgraded protocol forwarding.

If the request Upgrade header matches the worker upgrade= parameter and

the backend switches the protocol, do the tunneling in mod_proxy_http.

This allows to keep the protocol to HTTP until the backend really

switches the protocol, and apply usual output filters.

When configured to forward Upgrade mechanism, we want the backend to be

able to announce its Upgrade protocol to the client (e.g. with 426

Upgrade Required response) and thus forward back the Upgrade header that

matches the one(s) configured in the worker upgrade= parameter.



ap_proxy_worker_can_upgrade(): added helper to determine whether a

proxy worker is configured to forward an Upgrade protocol.


Bump MMN minor for ap_proxy_worker_can_upgrade().


set_worker_param(): handle worker parameter upgrade=ANY as upgrade=*

(should the "any" protocol scheme be something some day..).


proxy_wstunnel_handler(): use ap_proxy_worker_can_upgrade() to match

the Upgrade header. Axe handling of upgrade=NONE, it makes no sense to

Upgrade a connection if the client did not ask for it, nor to configure

mod_proxy_wstunnel to use a worker with upgrade=NONE by the way.


proxy_http_req_t: add fields force10 (force HTTP/1.0) and upgrade (value

of the Upgrade header sent by the client if it matches the configuration,

NULL otherwise).

proxy_http_handler(): use ap_proxy_worker_can_upgrade() to determine

whether the request is electable for end to end protocol upgrading and set

req->upgrade accordingly.

terminate_headers(): handle Connection and Upgrade headers to send to the

backend, according to req->force10 and req->upgrade set before.

ap_proxy_http_prefetch(): use req->force10 and terminate_headers().

send_continue_body(): added helper to send the body retained for end to

end 100-continue handling.

ap_proxy_http_process_response(): use ap_proxy_worker_can_upgrade() to

match the response Upgrade header and forward it back if it matches the

configured one(s). That is for 101 Switching Protocol obviously but also

any other status code which is not overidden, at the backend wish. If the

protocol is switching, create a proxy tunnel and run it, using the minimal

timeout from the client or backend connection.

Github: closes #125

ap_log_pid(): Windown does not implement apr_file_perms_set(), not a failure.