]> git.ipfire.org Git - thirdparty/squid.git/commit
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)
committerAmos Jeffries <yadij@users.noreply.github.com>
Thu, 11 Jun 2020 17:14:06 +0000 (05:14 +1200)
commitda01c130ebd71f0fce2068a93bfb6e1635dab91f
tree799ee3f6102bc1d068a884bce04d23b23b3b726f
parentf4cfdb7a62168bef09f8cfa438c2a730206c82ed
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