]> git.ipfire.org Git - thirdparty/squid.git/commit
Remove the HttpStateData::orig_request member
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 30 Jun 2011 08:33:36 +0000 (11:33 +0300)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 30 Jun 2011 08:33:36 +0000 (11:33 +0300)
commite24f13cdd75215b6b297ef81b44b93daf94b5f20
treedaf0706009e9c4aebea4f4bcbf47666ca0332627
parent040bb0955b9061b52400e6cd3507a075195b8192
Remove the HttpStateData::orig_request member

When FwdServer::_peer is set, HttpStateData constructor creates a new special
HttpRequest, overwriting the request pointer set in the parent (ServerStateData)
constructor to fwd->request.

This special HttpRequest sets the proper urlpath (which maybe different from
the original HttpRequest), the host (HttpRequest::SetHost/GetHost) to be the
peer hostname and inherits flags, protocol, method. Also sets the
HttpRequest::flags.proxying.

Probably this is originaly done to handle only the differences in urlpath and
the host. But this is has  as result to have two HttpRequests object in
HttpStateData, but their difference is not clear.

This patch removes the HttpStateData::orig_request member and uses only the
HttpStateData::request member

Bugs fixed with this patch:

- Debugs() and error pages sometimes display the cache_peer hostname as the URL   requested domain name when going to an origin. Regardless of what the virtual
  host name actually is.

- The request_header_access configuration parameter does not work when
  sending requests to parent proxies.

- Squid may cache replies to requests with no-store in headers when uses a
  parent cache.

- parent caches which have been configured as "sibling" for specific domains
  using the neighbor_type_domain parameter are not counted.

- Probably many other

This is a Measurement Factory project
src/htcp.cc
src/http.cc
src/http.h
src/tunnel.cc