]> git.ipfire.org Git - thirdparty/squid.git/commit
Adapting 100-continue
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 10 Nov 2014 11:45:36 +0000 (13:45 +0200)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 10 Nov 2014 11:45:36 +0000 (13:45 +0200)
commitec69bdb2463e4ddbb49432d6154069369da71a3f
treebd762472138e9e75435df447b97454f399ddb58e
parente4dffe5ada7a5b4723646d0ca17d0079671178ea
Adapting 100-continue

Currently squid fails to handle correctly "100 Continue" requests/responses
when ICAP is used. The problems discussed in squid bugzilla:
     http://bugs.squid-cache.org/show_bug.cgi?id=4067

A short discussion of the problem:
  When a data upload request enters squid (eg a PUT request with
"Expect: 100-continue" header), squid sends ICAP headers and HTTP headers to
ICAP server and stucks waiting for ever  the request body data.

This patch implements the "force_request_body_continuation" access list
directive which controls how Squid handles data upload requests from HTTP and
send the request body to Squid.
An allow match tells Squid to respond with the HTTP 100 or FTP 150
(Please Continue) control message on its own, before forwarding the
request to an adaptation service or peer. Such a response usually forces
the request sender to proceed with sending the body. A deny match tells
Squid to delay that control response until the origin server confirms
that the request body is needed. Delaying is the default behavior.

This is a Measurement Factory project
src/HttpRequest.cc
src/HttpRequest.h
src/SquidConfig.h
src/cf.data.pre
src/client_side.cc
src/clients/FtpRelay.cc
src/http.cc
src/servers/FtpServer.cc
src/servers/HttpServer.cc