Ping Alex.
If there are no objections (or wait requests) I will apply this tomorrow.
Amos
On 2/08/2013 10:30 p.m., Amos Jeffries wrote:
This patch lays the groundwork for HTTP/2.0 support in Squid:
* registers PRI method for detection of the HTTP/2.0 "magic"
connection header when expecting HTTP/1.1 traffic
* extend the request line HTTP-version's accepted by the parser to
include "HTTP/2.0".
* reject 2.0 traffic received by reverse- or forward-proxy ports and
log "error:http-2.0-not-supported" in access.log.
* reject "HTTP/2.0" version label or "PRI" method in any use other
than a complete HTTP/2.0 magic connection header.
* change delivered error page to the "Method Not Allowed" response,
indicating the PRI magic "method" is rejected by this HTTP/1.1 proxy.
* intercepted HTTP/2.0 traffic is relayed to ORIGINAL_DST or a
cache_peer transparently.
Note that HTTP/2.0 traffic relaying can be prevented by defining an
ACL for method PRI and limited by http_access controls in the same way
as method CONNECT. cache_peer_access selection can also make use of
the PRI method in ACLs to control tunneling to peers.
Also, fix bug 3371 (CONNECT payload data sent in the first packet
being dropped by Squid) as a necessary step towards relaying the
HTTP/2.0 frames which are expected to be pushed in by the client
immediately after the HTTP/2.0 magic header.
Also, add URL parsing and generation support for "*" URL in
request-lines of PRI, OPTIONS and TRACE methods. This is only updating
the URL internal code for OPTIONS and TRACE, the remainder of support
necessary to cope with that URL special case according to HTTP/1.1
requirements is still missing and outside the scope of this patch.
Amos