]> git.ipfire.org Git - thirdparty/squid.git/commit - src/cf.data.pre
Allow upgrading from HTTP/1.1 to other protocols (#481)
authorChristos Tsantilas <christos@chtsanti.net>
Fri, 29 May 2020 21:26:08 +0000 (21:26 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Mon, 1 Jun 2020 11:38:58 +0000 (11:38 +0000)
commit1c2b4465dbca5ae7ffacfb6150bc2e08c1a4a64f
treec7506c90875a12976f1f915c038580738a591a48
parent331cec473e2ac97221f4ea08e206ac4df245915d
Allow upgrading from HTTP/1.1 to other protocols (#481)

Support admin-authorized HTTP Upgrade-driven (RFC 7230 Section 6.7)
protocol switching. The new http_upgrade_request_protocols configuration
directive allows admin to control what client Upgrade offer(s) are
forwarded to the server. Squid does not automatically check whether the
server selection matches one of the client offers, but the admin can
deny unacceptable server responses using http_reply_access.

By default, Squid still does not forward any Upgrade headers,
effectively blocking an upgrade attempt.

Squid itself does not understand the protocols being upgraded to and
participates in the upgraded communication only as a dumb TCP proxy.

This is a Measurement Factory project.
28 files changed:
src/HttpHeaderTools.cc
src/HttpUpgradeProtocolAccess.cc [new file with mode: 0644]
src/HttpUpgradeProtocolAccess.h [new file with mode: 0644]
src/Makefile.am
src/SquidConfig.h
src/StrList.cc
src/StrList.h
src/acl/Acl.h
src/acl/Checklist.cc
src/adaptation/icap/ModXact.cc
src/cache_cf.cc
src/cf.data.depend
src/cf.data.pre
src/client_side.cc
src/client_side.h
src/comm/Connection.cc
src/comm/Connection.h
src/http.cc
src/http.h
src/http/StateFlags.h
src/servers/Http1Server.cc
src/servers/Http1Server.h
src/ssl/PeekingPeerConnector.cc
src/ssl/PeekingPeerConnector.h
src/tests/stub_HttpUpgradeProtocolAccess.cc [new file with mode: 0644]
src/tests/stub_cache_cf.cc
src/tests/stub_tunnel.cc
src/tunnel.cc